行位置ListView中的TextView值

时间:2015-03-20 20:33:09

标签: android listview android-listview

我设置的是一个包含1个TextView和2个按钮的ListView。我想要做的是当点击第一个按钮时,我希望它在TextView中给我值。

我花了很多时间来查看,但我找不到能够正常工作的答案。我在onClick按钮方法中有这个代码:

// position of the button
int position = pendingList.getPositionForView((View) view.getParent());


//extract the text
String pendingUserText = pendingUsers.get(position).get(R.id.name);

需要注意的是,我使用ArrayList映射来填充listview和一个简单的适配器。当我这样做时,我得到的问题是当我尝试Toast.make然后我传递“pendingUserText”通过它,我得到一个空值。任何帮助将不胜感激!

这是XML文件

<TextView
    android:id="@+id/name"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:paddingTop="6dip"
    android:textSize="16sp"
    android:textStyle="bold"
    android:height="30dp" />
<Button
    android:id="@+id/addButton"
    android:layout_height="fill_parent"
    android:layout_width="wrap_content"
    android:text="Accept"
    android:layout_alignTop="@+id/name"
    android:layout_centerHorizontal="true"
    android:background="#3366CC"
    android:textColor="#B0E0E6"
    android:layout_alignBottom="@+id/name"
    android:clickable="true"
    android:bottomLeftRadius="8dp"
    android:bottomRightRadius="8dp"
    android:topLeftRadius="8dp"
    android:topRightRadius="8dp"
    android:onClick="addButtonClicked"
    />

<Button
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:id="@+id/declineButton"
    android:text="Decline"
    android:textColor="#B0E0E6"
    android:background="#3366CC"
    android:bottomLeftRadius="8dp"
    android:bottomRightRadius="8dp"
    android:topLeftRadius="8dp"
    android:topRightRadius="8dp"
    android:layout_alignTop="@+id/name"
    android:layout_alignRight="@+id/name"
    android:layout_alignEnd="@+id/name"
    android:layout_alignBottom="@+id/name"
    android:clickable="true"
    />'

这是我的ListAdapter

istView list = (ListView) findViewById(R.id.friendslistView);
            ListAdapter adapter = new SimpleAdapter(
                    FriendsActivity.this, pendingUsers,
                    R.layout.list_item, new String[] {TAG_FROMUSER}, new int[] { R.id.name});
            list.setAdapter(adapter);

1 个答案:

答案 0 :(得分:0)

找到答案。

RelativeLayout vwParentRow = (RelativeLayout)view.getParent();
    TextView pending =(TextView)vwParentRow.findViewById(R.id.name);

任何需要它的人。