2012-09-02 51 views
0

我有MainMenu。有3種不同的ImageButton用於開始新的活動。一切工作正常,但我想知道是可能的另一種方式來編碼。我從一個按鈕的示例代碼中拿出了這個,我認爲它看起來不太好:爲每個按鈕設置新的OnClickListener()從ImageButtons開始新的活動

public class MainMenu extends Activity implements OnClickListener{ 

ImageButton firstModule; 
ImageButton secondModule; 
ImageButton thirdModule; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_menu); 

    //init buttons 
    firstModule = (ImageButton) findViewById(R.id.imageButton1); 
    secondModule = (ImageButton) findViewById(R.id.imageButton2); 
    thirdModule = (ImageButton) findViewById(R.id.imageButton3); 

    firstModule.setOnClickListener(this); 
    secondModule.setOnClickListener(this); 
    thirdModule.setOnClickListener(this); 
} 
public void onClick(View v) { 

    switch(v.getId()){ 
    case R.id.imageButton1: 
     startActivity(new Intent(MainMenu.this, BasicFunctions.class)); 
     break; 
    case R.id.imageButton2: 
     startActivity(new Intent(MainMenu.this, GpsModule.class)); 
     break; 
    case R.id.imageButton3: 
     startActivity(new Intent(MainMenu.this, Graphic3D.class)); 
     break; 
    } 

} 

}

回答

3

更優雅的方式是實施View.OnClickListenerActivity,然後點擊過程裏面你ActivityonClick()方法中。它爲您提供了一個View對象作爲參數,您可以使用view.getId()方法檢索視圖的ID,然後您可以使用switch塊爲佈局中的每個Button執行操作。希望這可以幫助。

+0

我試過了你的解決方案(第一篇文章編輯過),但按鈕沒有反應點擊。我現在沒有想法。 –

+0

我在switch()中做了一個斷點,看起來方法OnClic()從不使用。 –

+0

我忘了爲每個按鈕設置onClickListener,發佈編輯。非常感謝Egor的幫助! –