2017-05-27 47 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方法,並確保您在第二個活動實例化您的意見。

相關問題