Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改变活动的意图不';行不通_Java_Android_Eclipse - Fatal编程技术网

Java 改变活动的意图不';行不通

Java 改变活动的意图不';行不通,java,android,eclipse,Java,Android,Eclipse,我创建了一个简单的计数器,并希望添加一个按钮,该按钮将继续进行另一个活动,下面是我得到的: //counter starts @Override public void onClick(View v) { if (v == btn1){ counter++; scoreText.setText(Integer.toString(counter)); scoreText.setBackgroundColor(Color.CYAN);

我创建了一个简单的计数器,并希望添加一个按钮,该按钮将继续进行另一个活动,下面是我得到的:

//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);
    }});
    }}
//标记之后,计数器结束了
标记,我将OnClickListener设置为一个按钮“下一步”,该按钮继续执行另一个活动,并创建了一个意图,该意图将带来名为“Aktivity”的活动。
然而,当我按下按钮时,什么也没发生。halp

在onCreate()方法中剪切并粘贴此代码

无法将click listener设置为onClick()方法内的对象代码:

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我也测试了你的场景。我可以用你使用的相同方法打开相同的活动。可能还有其他问题。

换成

@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确保您的活动实现了
OnClickListener


您可以使用
if-else

而不是
switch case
实际上,当我们在onCreate中添加onClickListener时,我们使用“this”作为传递上下文的参数。现在,要在外部添加侦听器,我们需要上下文。它不起作用。你最好在发表评论之前检查一下。它将只对已按下按钮1的用户起作用。否则它将无法工作。这不是一般的解决办法。哦,我现在明白了。我以为Miroslav只想在点击另一个按钮时启用第二个按钮。对此很抱歉。好的,我测试了上面的场景,并体验到可以将click listener添加到某个click事件中的对象。在我的答案中发布代码。@AnkitGarg它不起作用。你最好在发表评论之前检查一下。它将只对已按下按钮1的用户起作用。否则它将无法工作。这不是一般的解决办法。
next.setOnClickListener(this); // similarly fro other buttons