2012-01-06 131 views
1

我的布局上有3个按钮。我希望每次按下它时都会转到不同的屏幕。我应该做的是这样或更复杂的事情?按钮和OnClick监听器

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

我没有看到这样做的事情有什么问题。如果你需要它,我可以提供更多的帮助,但请清理你的问题,这几乎是不可能的。 – AedonEtLIRA 2012-01-06 22:30:06

+0

我个人认为这很好,显然英语不是第一语言,它仍然可以理解,并且提供了比本网站上大多数问题更多的信息。顺便说一句,你应该把它写成@AedonEtLIRA的答案,我会提出问题和答案。 – zode64 2012-01-06 22:33:28

回答

3

此代码是正确的。要转到其它屏幕,你这样做:

Intent i = new Intent(this, OtherScreen.class); 
startActivity(i); 

和AndroidManifest.xml中把权限OtherScreen对标签应用:

<activity android:name=".OtherScreen"> </activity> 
2

就像你拥有它一样好。在按钮点击的方法1,2,3中,你只需要开始一个意图来运行你想要的活动。

您需要更改每个按钮的id虽然R.id.Button01,R.id.Button02,R.id.Button03

+2

他们不想外出。他们可以像现在一样保持实例对象。我个人比较喜欢这种方式。 – AedonEtLIRA 2012-01-06 22:33:06

+0

谢谢,我有点困惑,编辑我的帖子约4次! – 2012-01-06 22:34:18

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

}