2013-07-13 24 views
1

我有一個名爲MainActivity一個活動,有兩個layouts.The之前的活動有兩個按鈕來選擇要哪個佈局set.I需要MainActivity按鈕來採取不同的根據在使用的佈局,這是我的代碼:檢測其佈局是在活動中使用與兩個佈局

public class MainActivity extends Activity implements OnClickListener { 

     Button shoot; 


    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Bundle extras = getIntent().getExtras(); 
     if (extras != null) { 
     int btnNumber = extras.getInt("button"); 
     switch(btnNumber) 
     { 
      case 1 : setContentView(R.layout.first_layout); break; 
      case 2 : setContentView(R.layout.second_layout); break; 
     } 
     } 


     shoot=(Button)findViewById(R.id.button1); 
     shoot.setOnClickListener(this); 


     public void onClick(View arg0) { 
     // TODO Auto-generated method stub 

     switch(arg0.getId()) { 


     case R.id.button1: 


        // WHAT SHOULD THE CODE BE HERE 

        break; 

    } 


} 
+0

您發佈是系統活動代碼代碼?如果是這樣,**代碼應該放在哪裏**應該是你想用這個按鈕做什麼。 – ramaral

+1

您可能要「系統」分爲兩個活動,並徹底清除難看的條件語句。 –

回答

0

編輯你的代碼,在頂部

private int whichLayout = 0; 

然後一個私有變量,當你拿到包做到這一點:

 switch(btnNumber) 
    { 
     case 1 : setContentView(R.layout.first_layout); whichLayout = 1; break; 
     case 2 : setContentView(R.layout.second_layout); whichLayout = 2; break; 
     default: //Handle this 
    } 

最後編輯您的onClick監聽器是這樣的:

public void onClick(View arg0) { 

    switch(whichLayout) { 
    case 1: {//Do what you want; } break; 
    case 2: {//Do what you want; } break; 
    default: //Handle this 
} 
+0

爲什麼默認? – user2558256

+0

它的魅力!由於 – user2558256

+0

默認的情況下,例如,如果btnNumber未設置爲1或2,那麼你會去的默認情況。如果事情不符合預期,處理一般情況是一種很好的做法。 如果我的回答幫助,那麼你應該將其標記爲回答。 –