2017-05-27 16 views
-1

クリックすると別のレイアウトを開くボタンがあります。開いている2番目のレイアウトにもButtonがありますが、クリックすると何も起こりません。Android OnClickは2番目のレイアウトでは機能しません

My活動:誰かが私を助けることができれば

 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; 
    } 
    } 
    } 

はverry喜んでいるだろう:)

答えて

0

新しいコンテンツビューをMainActivityに設定すると、initializeの新しいlayout2のビューを後で使用する必要があります。

1.Button参照をlayout2から取得してください。

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をしました。両方のボタンのクリック方法は?また - これsetContentViewを使用して、新たな活動に

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

を開くためのテントビュー階層

0

利用を通じて、さらに上のそれを「通らない」だけであなたは、レイアウトを変更していますが、クリック/タッチイベントを消費していないことを確認してくださいまだ同じクラスにあります

通常のonClickメソッドを使用して、2番目のアクティビティでビューをインスタンス化するようにしてください。

関連する問題