2013-07-13 25 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,那么你会去的默认情况。如果事情不符合预期,处理一般情况是一种很好的做法。 如果我的回答帮助,那么你应该将其标记为回答。 –