【问题标题】:TextView value from Row Position ListView来自行位置 ListView 的 TextView 值
【发布时间】:2015-05-24 09:12:34
【问题描述】:

我设置的是一个 ListView,它有 1 个 TextView 和 2 个 Button。我想要做的是当第一个按钮被点击时,我希望它给我 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 映射来填充我的列表视图和一个简单的适配器。当我这样做时,我遇到的问题是当我尝试 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);

【问题讨论】:

  • 请将布局 xml 文件和相关代码发布到您的 Listview 和适配器。
  • 您想阅读一本好教程并重新设计您的代码吗?
  • @TheOriginalAndroid 什么意思?
  • @TheOriginalAndroid 我一定想看看。
  • @pbabcdefp 回答了我自己的问题 :)。感谢大家的支持。

标签: android listview android-listview


【解决方案1】:

找到答案了。

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

适合任何需要的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多