【问题标题】:How to identify a specific row from a custom listview once a button has been clicked单击按钮后如何从自定义列表视图中识别特定行
【发布时间】:2016-07-02 21:13:15
【问题描述】:

我是 android 开发新手,正在尝试创建一个多列列表视图,每行末尾都有一个按钮。我有以下 xml 来实现这种格式:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:id="@+id/value_name"
    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:typeface="sans"
    android:textColor="#000000"
    android:layout_weight="1"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge"  />
<TextView
    android:id="@+id/child_name"
    android:layout_width="70dp"
    android:layout_height="wrap_content"

    android:typeface="sans"
    android:textColor="#000000"
    android:layout_weight="1"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
    android:id="@+id/point_value"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:typeface="sans"
    android:textColor="#000000"
    android:layout_weight="1"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge"   />

<Button

    android:id="@+id/claimChore"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text = "Claim Chore"/>

我一直在网上搜索这个问题的答案,并找到了添加到代码中的解决方案。但是,此解决方案的按钮不是为查找有关特定行的信息而定制的,因此我不知道在此方法中放置什么来检索它。如果有人能阐明在这个 onClick 方法中放置什么,那将是一个很大的帮助。

 wrapper.mySimpleAdapter = new SimpleAdapter(Child_Chore.this, chores, R.layout.list_format, new String[]{"chore","points"},new int[]{R.id.value_name,R.id.point_value})
                {
                    @Override
                    public View getView (int position, View convertView, ViewGroup parent)
                    {
                        View v = super.getView(position, convertView, parent);

                        Button b=(Button)v.findViewById(R.id.claimChore);
                        b.setOnClickListener(new View.OnClickListener() {

                            @Override
                            public void onClick(View arg0) {
                               //Where I want to identify the current R.id.value_name;
                            }
                        });
                        return v;
                    }


                };

【问题讨论】:

  • 在listView中设置onItemClickListener并用listView.get(position).getButtonID标识
  • 正如我所说,我是 android 开发的新手,您能否更清楚地说明您的意思?

标签: android xml listview button


【解决方案1】:

使用“getView”方法提供给您的变量“位置”。

@Override
                public View getView (int position, View convertView, ViewGroup parent)
                {
                    View v = super.getView(position, convertView, parent);

                    Button b=(Button)v.findViewById(R.id.claimChore);
                    b.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                           //Where I want to identify the current 
                            doAnything(position);
                        }
                    });
                    return v;
                }

【讨论】:

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