Search code examples
androidparent

Get other child that shares parent with the current view


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
      }
};

Solution

  • 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.