为什么父视图和子视图正在接收onclick事件

时间:2012-02-23 07:17:07

标签: android handler

我有一个父视图LinearLayout我添加了一个子视图TextView,但每当我点击子视图时,为什么还要点击parentview。我想要的是区分是否只点击了父项并且仅点击了子视图。

    LinearLayout rlmain = (LinearLayout)findViewById(R.id.linearLayout1);
    rlmain.setOnClickListener(new OnClickListener() {
           public void onClick(View arg0) {

           }
    });

    TextView tv = (TextView )findViewById(R.id.TextViewLayout1);
    tv.setOnClickListener(new OnClickListener() {
           public void onClick(View arg0) {

           }
    });

3 个答案:

答案 0 :(得分:0)

然后尝试首先在Activity中实现View.OnClickListener,然后尝试覆盖

    @Override
    public void onClick(View v){
    if(v.getId().equals(R.id.linearLayout1) {
    //do ur stuffs
    } else {
    //do your stuffs
    }

希望它会对你有所帮助。 :)

答案 1 :(得分:0)

在android中,ViewGroups(即通过继承的所有布局)使用属性(和相应的xml属性):addStatesFromChildren

如果设置,父级将被设置为与其子视图相同的状态。

答案 2 :(得分:0)

试试这段代码......

LinearLayout rlmain = (LinearLayout)findViewById(R.id.linearLayout1);
rlmain.setOnClickListener(this);

TextView tv = (TextView )findViewById(R.id.TextViewLayout1);
tv.setOnClickListener(this)



@Override
public void onClick(View v){
  switch(v.getId()) {
    case R.id.TextViewLayout1:
    //do ur stuffs
    break;
    case R.id.linearLayout1:
    //do ur stuffs
    break;       
  }
}