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