Получить другого дочернего элемента, который разделяет родительский элемент с текущим представлением
Я создаю таблицу, в которой каждая строка содержит текст, а также кнопку. Теперь, когда эта кнопка нажата, я хочу вызвать событие, которое использует значение текста рядом с кнопкой. Как я могу получить доступ к содержимому этого TextView? Я могу получить ViewParent
моей кнопки, которая должна быть строкой, но нет способа получить доступ к этим представлениям.
private OnClickListener updateButtonListener = new OnClickListener(){
public void onClick(View v) {
ViewParent parent = v.getParent();
//Here I would like to get the first child of that ViewParent
}
};
Ответы
Ответ 1
Если вы можете получить ViewParent
, вы можете перевести его на ViewGroup
и получить View
, который вам нужен. Ваш код будет выглядеть так:
TextView textView = null;
ViewGroup row = (ViewGroup) v.getParent();
for (int itemPos = 0; itemPos < row.getChildCount(); itemPos++) {
View view = row.getChildAt(itemPos);
if (view instanceof TextView) {
textView = (TextView) view; //Found it!
break;
}
}
Это значит, что в вашей строке есть только один TextView
.
Ответ 2
Если вы знаете идентификатор дочернего элемента, вы можете сделать следующее:
ViewGroup row = (ViewGroup) v.getParent();
TextView textView = (TextView) row.findViewById(R.id.childID);