改变活动的意图不起作用

时间:2013-10-29 15:53:40

标签: java android eclipse

我创建了一个简单的计数器,并希望添加一个按钮进入另一个活动,这是我得到的:

//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,它带来了名为“Aktivity”的活动。 然而,当我按下按钮时,没什么好玩的。 HALP

3 个答案:

答案 0 :(得分:0)

将此代码剪切并粘贴到onCreate()方法

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

您无法将onClick侦听器设置为onClick()方法

中的对象

答案 1 :(得分: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 on object可以在其​​他onClick中实现。

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

答案 2 :(得分: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

确保您的活动实施OnClickListener

而不是switch case,您可以使用if else