我正在创建一个表,其中每行包含文本和按钮。现在,当按下该按钮时,我想调用一个使用按钮旁边文本值的事件。如何访问该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
}
};
答案 0 :(得分:60)
如果您可以获得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
。
答案 1 :(得分:12)
如果您知道子元素的ID,则可以执行以下操作:
ViewGroup row = (ViewGroup) v.getParent();
TextView textView = (TextView) row.findViewById(R.id.childID);