2012-01-06 252 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; 
    } 
} 

}