我设置的是一个包含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);
答案 0 :(得分:0)
找到答案。
RelativeLayout vwParentRow = (RelativeLayout)view.getParent();
TextView pending =(TextView)vwParentRow.findViewById(R.id.name);
任何需要它的人。