Как получить ссылку TextView из пользовательского ImageView? - PullRequest
0 голосов
/ 24 октября 2010

Я хотел бы спросить, есть ли какие-либо методы для получения представления из другого представления.

Мой случай таков: У меня есть собственный вызов ImageView MyImageView. и мой макет таков:

FrameLayout:
  MyImageView 
  LiearLayout:
      LiearLayout: 
          TextView 
      LiearLayout:
          TextView

У меня есть некоторый код в MyImageView, и я хотел бы редактировать текст в TextView с помощью LinearLayout.

мой код в MyImageView для выбора TextView:

TextView textView = (TextView) findViewById(id.TextView01);

Однако textView всегда имеет значение null, и я не могу установить текст, который я выбрал.

Более того, если я кодирую это:

TextView textView = (TextView) findViewById(R.id.TextView01);

Затмение выдаст мне ошибку и скажет: не могу определить идентификатор.

Так есть ли методы для редактирования TextView из ImageView?

Ответы [ 2 ]

1 голос
/ 24 октября 2010

Прежде всего ... это ужасная идея (я был бы в шоке, если бы я был тобой).И это большой сигнал, что вы должны переосмыслить, как сделать ваш макет.

В любом случае, использование метода getParent может работать:

// in your MyImageView
FrameLayout parent = (FrameLayout)getParent();
TextView textView = (TextView) parent.findViewById(R.id.TextView01);

Это не работаеткак вы это делаете, так как TextViews не в вашем пользовательском представлении.

0 голосов
/ 25 октября 2010

Я думаю, что вы всегда можете вызвать getRootView () и оттуда вы можете искать представление по Id. Пока идентификаторы уникальны в текущей иерархии представления, вы должны иметь возможность захватывать textView независимо от того, где он находится в иерархии.

Так похоже на другой ответ

TextView textView = (TextView) getRootView().findViewById(R.id.textview_01);

если он на том же экране, он всегда будет там.

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