почему родительский и дочерний вид получают onclickevent - PullRequest
1 голос
/ 23 февраля 2012

У меня есть родительское представление LinearLayout. Я добавил дочернее представление TextView, но всякий раз, когда я нажимаю на дочернее представление, почему также выбирается родительское представление.Что я хочу, так это различить, был ли выбран только родитель и только дочерний вид.

    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 голосов
/ 23 февраля 2012

В андроиде ViewGroups (т.е. все макеты по наследованию) используют свойство (и соответствующий атрибут xml): addStatesFromChildren

Если установлено, родительский элемент будет просто установлен в том же самомзаявить, как один из его детей.

0 голосов
/ 23 февраля 2012

попробуйте этот код ...

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;       
  }
}
0 голосов
/ 23 февраля 2012

, затем попробуйте сначала реализовать View.OnClickListener в вашем Activity, затем попробуйте переопределить

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

Надеюсь, это поможет вам. :)

...