2012-01-29 8 views
1

同じアクティビティで2つのレイアウトを切り替える2つのボタンがあります。レイアウト1のbutton1をクリックすると、レイアウト2に移動します(setContentViewを使用)。 layout2では、button2をクリックすると、layout1に戻ります。次に、button1はもはやOnClickListenerに応答しません。私は "入力イベント"を調べましたが、まだそれを理解できませんでした。何が起こったのか、それを修正する方法は?1つのアクティビティで異なるレイアウト間のボタンの状態?

ありがとうございます!レイアウトを変更するには時間があるときに

Button submitBtn; 
Button backBtn; 
submitBtn = (Button)findViewById(R.id.button1); //on layout1 
backButn = (Button)findViewById(R.id.button2); //on layout2 
submitBtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      setContentView(R.layout.layout2); 
        } 
    }); 
backBtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      setContentView(R.layout.layout1); 
        } 
    }); 
+0

あなたのコードを貼り付けることができます – Mercy

答えて

1

setContentViewを呼び出すときにレイアウトを切り替えたときにリスナーを再割り当てすると、古いビューが破棄され、新しいコンポーネントが作成されます。

+0

それは素晴らしいです! –

0

あなたはそれ以外のビューはnullになります、contentviewを設定しなければなりません。

関連する問題