2017-01-21 3 views
0

Androidのビューには簡単な問題があります。私は2つのビューrootViewとcontainerViewを持っていますが、containerViewはrootViewに含まれていますが、なぜcontainerViewをクリックするとrootViewがトリガーされるのか分かりません。AndroidルートビューのonClickListenerは常に起動されます

public class MainActivity extends AppCompatActivity { 

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

    LinearLayout rootView = new LinearLayout(this); 
    rootView.setBackgroundColor(Color.BLUE); 
    rootView.setGravity(Gravity.CENTER); 
    rootView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); 
    rootView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.d("esx","ROOT VIEW ID: "+v.getId()); 
     } 
    }); 

    LinearLayout containerView = new LinearLayout(this); 
    containerView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,100)); 
    containerView.setBackgroundColor(Color.CYAN); 

    rootView.addView(containerView); 

    setContentView(rootView); 
}} 

私はcontainerViewをクリックすると何も起こりません。これを行う方法はありますか?

おかげ

答えて

2

containerView.setClickable(true)

0

onClickを設定してみてくださいView引数を提供します。それを比較して、それがrootViewかどうかを確認してください。それでも問題が解決しない場合は、containerViewではないことを確認してください(リスナーを追加する前に宣言する必要があります)

関連する問題