0

我创建了一个简单的计数器,并想添加一个继续进行另一个活动的按钮,这就是我得到的:

//counter starts
@Override
public void onClick(View v) {
    if (v == btn1){
        counter++;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.CYAN);
    }
    if (v == btn2){
        counter--;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.GREEN);
    }

    if (v == btn3){
        counter = 0;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.RED);
    }
    //There the counter ends
        next.setOnClickListener(new OnClickListener() { 
            @Override
            public void onClick(View v) {
        Intent intent = new Intent(SecondAcitivity.this, Aktivity.class);
        startActivity(intent);
    }});
    }}

//There the counter ends标记之后,我将 OnClickListener 设置为按钮“NEXT”,该按钮继续执行另一个活动,并创建了一个 Intent,该 Intent 为名为“Aktivity”的活动带来了。然而,当我按下按钮时,什么也没有发生。停止

4

3 回答 3

0

Cut and Paste this code in your onCreate() Method

next.setOnClickListener(new OnClickListener() { 
            @Override
            public void onClick(View v) {
        Intent intent = new Intent(SecondAcitivity.this, Aktivity.class);
        startActivity(intent);
    }});

You can't set click listener to an object inside onClick() Method

于 2013-10-29T15:55:41.713 回答
0

改成

@Override
public void onClick(View v) {

switch(v.getId())
{
case R.id.btn1: // btn1 clicked
        counter++;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.CYAN);
break;
case R.id.btn2: // btn2 clicked
        counter--;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.GREEN);
break;
case R.id.btn1: // btn3 clicked
        counter=0;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.RED);
break;
case R.id.next: // assuming button next id is next. btn next clicked
          Intent intent = new Intent(SecondAcitivity.this, Aktivity.class);
          startActivity(intent);
break;
}
}

然后在 onCreate

next.setOnClickListener(this); // similarly fro other buttons

Ans 确保您的 Activity 实现OnClickListener

而不是switch case你可以使用if else.

于 2013-10-29T16:09:00.050 回答
0

代码:

Button b1, b2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    b1 = (Button) findViewById(R.id.f);
    b2 = (Button) findViewById(R.id.s);
    b1.setOnClickListener(this);
}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    b1.setVisibility(View.INVISIBLE);
    b2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            b2.setVisibility(View.INVISIBLE);
        }
    });
}

@Brontok 我测试了这段代码,它工作正常。所以,对一个对象的 onClick 可以在其他 onClick 内部实现。

@MiroslavVitula 我也测试了你的场景。我能够通过您使用的相同方法打开相同的活动。也许还有其他问题。

于 2013-10-29T16:00:35.860 回答