2017-05-27 49 views
-1

我有一个按钮,可以在单击时打开另一个布局。打开的第二个布局也有一个按钮,但点击时该按钮没有任何反应。Android OnClick不适用于第二个布局

我的活动:

 package com.example.android.myapplicationo9; 

    import android.app.Activity; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.Toast; 

    import static com.example.android.myapplicationo9.R.layout.layout2; 

    public class MainActivity extends Activity implements          
    View.OnClickListener   { 

    public Button bt; 
    public Button bt2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final LayoutInflater factory = getLayoutInflater(); 
    final View textEntryViw = factory.inflate(R.layout.layout2,null); 
    bt2 = (Button)textEntryViw.findViewById(R.id.button2); 
    bt = (Button)findViewById(R.id.button); 

    bt.setOnClickListener(this); 
    bt2.setOnClickListener(this); 
    } 

    public void onClick(View v){ 

    switch (v.getId()){ 
     case R.id.button: 
      setContentView(layout2); 
      Toast.makeText(MainActivity.this,"e",Toast.LENGTH_LONG).show(); 
      break; 

     case R.id.button2: 
      Toast.makeText(MainActivity.this,"e",Toast.LENGTH_LONG).show(); 
      break; 
    } 
    } 
    } 

将柠高兴,如果有人可以帮助我:)

回答

0

当你正在为你的MainActivity设置新的内容视图layout2,你必须initialize意见的新layout2再以后使用。

1.layout2获取参考文献Button

2.设置onClick收听您的Button

这里是工作代码:

case R.id.button: 
{ 
    setContentView(layout2); 

    // Initialize button of layout2 
    Button button = (Button) findViewById(R.id.button_of_layout2); 

    // Set onClick listener 
    button .setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(MainActivity.this,"Layout2 Button clicked", Toast.LENGTH_LONG).show(); 
     } 
    }); 

    Toast.makeText(MainActivity.this,"e",Toast.LENGTH_LONG).show(); 
    break; 
} 

希望这将有助于〜

0

做你IMPL。点击两个按钮上的方法?也 - 确保你不因此消耗的点击/触摸事件“未通过”进一步在整个视图层次

0

使用意向开辟新的活动

Intent intent = new Intent(this, YourClass.class) 
startActivity(intent); 

使用的setContentView只改变了布局,但你仍然在同一类

尝试使用正常的onClick方法,并确保您在第二个活动实例化您的意见。

相关问题