我的布局上有3个按钮。我想按下每个按钮去另一个屏幕。我应该做的是这样或更复杂的事情?
b1=(Button)findViewById(R.id.Button01);
b1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
FirstButtonClicked();
}
});
b2=(Button)findViewById(R.id.Button02);
b2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SecondButtonClicked();}
});
b3=(Button)findViewById(R.id.Button03);
b3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ThirdButtonClicked();}
});
我必须返回关于按下按钮的任何内容,或者如果按下第一个按钮(例如),第二个和第三个按钮根本不会运行吗? Alos,它们必须在我的onCreate中定义,或者我可以在外面定义它们,作为一个名为CheckButtons()的新函数;只是从我的on.Create()(或者我想检查那些按钮的其他地方)调用它?
答案 0 :(得分:3)
此代码是正确的。要转到其他屏幕,请执行以下操作:
Intent i = new Intent(this, OtherScreen.class);
startActivity(i);
和AndroidManifest.xml在标签应用程序上添加了OtherScreen的权限:
<activity android:name=".OtherScreen"> </activity>
答案 1 :(得分:2)
就像你拥有它一样好。在按钮点击的方法1,2,3中,您只需启动意图即可运行所需的活动。
你需要改变每个按钮的id,R.id.Button01,R.id.Button02,R.id.Button03
答案 2 :(得分:1)
你可以试试这个...这是一个简单的方法,但是......
public class StackOverFlow extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button b1,b2,b3;
Intent i;
b1= //get handle
b2= //get handle
b3= //get handle
}
public void onClick(View v) {
switch (v.getId()) {
case b1:
i=new Intent(StackOverFlow.this,destination1.class);
break;
case b2:
i=new Intent(StackOverFlow.this,destination2.class);
break;
case b3:
i=new Intent(StackOverFlow.this,destination3.class);
break;
default:
break;
}
}
}