按钮和OnClick监听器

时间:2012-01-06 22:24:03

标签: android button onclick listener

我的布局上有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()(或者我想检查那些按钮的其他地方)调用它?

3 个答案:

答案 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;
    }
}

}