Android - прикрепить данные к просмотрам - PullRequest
28 голосов
/ 23 апреля 2010

В моем приложении я создаю динамические строки в таблице так же, как в этом уроке: http://en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayout

 for(int i = startDay; i < startDay + 7; i++){

      /* Create a TextView to be the row-content. */
      TextView day = new TextView(this);
      day.setText(Integer.toString(i));
      day.setLayoutParams(new LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

      day.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
              Log.i("Listener: ", "Click");
          }

Так что теперь, когда я нажимаю на TextView, я могу зарегистрировать событие нажатия, но как мне определить, какой TextView был нажат?

Не только объект, который я получаю с событием, но и данные, например, по какому номеру дня щелкнули?

В идеале я хотел бы, чтобы данные были присоединены к каждому представлению, которое я создаю динамически. Что-то вроде метода data () в javascript jQuery.

Прямо сейчас я вижу только 1 способ решить эту проблему - при создании TextView добавить идентификатор с данными и при нажатии - вернуть идентификатор и проанализировать его, чтобы получить мои данные. Но это кажется мне ужасным подходом.

Есть ли способ прикрепить произвольные данные к представлениям Android?

1 Ответ

55 голосов
/ 23 апреля 2010

Найден ответ, проходящий через методы просмотра. Может быть, это кому-нибудь пригодится.

Методы, которые мне нужны были:

setTag () и getTag ()

http://developer.android.com/reference/android/view/View.html#setTag%28java.lang.Object%29

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...