Android: передать статус «нажал»? - PullRequest
1 голос
/ 07 февраля 2012

Я использую линейный макет внутри диалогового окна, и у меня есть несколько текстовых представлений внутри этого макета, и я также хотел бы изменить цвет в зависимости от «нажатого» состояния макета, который является их родителем. У них есть список состояний для того, какого цвета они должны быть, но кажется, что при щелчке по макету представлениям под ним не присваивается такое состояние "нажал".

Как я могу заставить TextViews менять цвет при щелчке их родительского макета?

1 Ответ

1 голос
/ 07 февраля 2012

Самый простой способ - передать событие в дочерние представления. Вы можете расширить TextView и добавить метод, который вы можете вызвать из обработчика onclick в Layout.

class MyTV extends TextView{

  public MyTV(Context c){
    //constructor gets context in case you want to make instances from code rather than XML
  }
  public doSomethingToMe(){
     //do stuff to this View from outside
  }
}

тогда в вашей деятельности ...

public void layoutClicked(View v){ //call this from your layout click
   ((MyTV)findViewById(R.id.myTV1)).doSomethingToMe();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...