我想制作按钮,单击按钮后我会转到另一个 Activity 吗? 问题是只有第一个按钮可以工作!
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button PageOneButton = (Button) findViewById(R.id.btnPageOne);
PageOneButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), PageOne.class);
v.getContext().startActivity(myIntent);
Button PageTwo = (Button) findViewById(R.id.btnPageTwo);
PageTwoButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), PageTwo.class);
v.getContext().startActivity(myIntent);
}
{}
});
}
});
}
}
最佳答案
认为这是因为您的大部分代码都在第一个 onClickListener 的范围内关闭,请尝试这样的操作。
Button PageOneButton = (Button) findViewById(R.id.btnPageOne);
PageOneButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Intent myIntent = new Intent(Main.this, PageOne.class);
startActivity(myIntent);
});
Button PageTwoButton = (Button) findViewById(R.id.btnPageTwo);
PageTwoButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Intent myIntent = new Intent(Main.this, PageTwo.class);
startActivity(myIntent);
});
使用 v.getContext()
应该没问题,这就是我通常会做的事情,因为 Activity 本身确实是一个有效的上下文。我想它对我来说似乎更具可读性。
编辑:
只是作为对代码当前状态的澄清。仅在按下第一个按钮后,才会为第二个按钮分配 onClickListener。但由于第一个按钮将应用程序带到一个新的 Activity,本质上会破坏主 Activity,因此第二个按钮将永远没有机会到达它的 onClickListener。
希望这是有道理的,不过上面的代码应该可以解决问题。
关于java - 多个 Activity 和按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290974/