I'm creating a table in which each row contains text as well as a button. Now when that button is pressed I want to call an event that uses the value of the text next to the button. How can I access the content of that TextView? I can get the ViewParent
of my button, which should be the row, but there's no method to access that views children.
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
}
};
If you can get a ViewParent
, you can then cast it to a ViewGroup
and get the View
you need. Your code will look like this:
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;
}
}
That's it, assuming you have only one TextView
in your row.
If you know the ID of a child element then you can do the following:
ViewGroup row = (ViewGroup) v.getParent();
TextView textView = (TextView) row.findViewById(R.id.childID);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With