自定义列表视图中的可点击按钮

本文关键字:按钮 列表 视图 自定义 | 更新日期: 2023-09-27 18:12:39

我的问题是我不能使我在自定义列表视图中添加的按钮可点击。

下面是我的自定义listview的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="335dp"
    android:layout_height="100dp"
    android:minHeight="80dp"
    android:maxHeight="250dp"
    android:background="#ffffff"
    android:id="@+id/list"
    android:baselineAligned="false"
    android:longClickable="false"
    android:descendantFocusability="blocksDescendants"
    android:clickable="false">
    <Button
        android:background="@drawable/grbgCan"
        android:layout_width="15dp"
        android:layout_height="20dp"
        android:id="@+id/deleteMemo"
        android:layout_gravity="start"
        android:layout_marginLeft="270dp"
        android:layout_marginTop="5dp"
        android:duplicateParentState="false"
        android:clickable="true" />
    <TextView
        android:text="Text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/id"
        android:layout_marginLeft="290dp"
        android:layout_marginTop="-20dp"
        android:layout_marginRight="15dp"
        android:clickable="true" />
    <TextView
        android:id="@+id/top"
        android:text="Title"
        android:textColor="#ff7e7777"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_width="255.5dp"
        android:layout_height="19.9dp"
        android:paddingLeft="10dp"
        android:layout_marginTop="-20dp" />
    <TextView
        android:id="@+id/bottom"
        android:textColor="#ff7e7777"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="63.3dp"
        android:paddingLeft="50dp"
        android:layout_gravity="left"
        android:text="Note" />
    <TextView
        android:text="Text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/date"
        android:layout_marginLeft="250dp"
        android:layout_marginRight="5dp" />
</LinearLayout>

在我的主要活动中,我尝试了Btn。单击事件,但它只产生一个错误。从我在类似的问题中所读到的,他们的按钮在他们的数组适配器中初始化,但我使用SimpleCursorAdapter,因为我从我的sqlite数据库获取数据。

那我该怎么办呢?请不要给我java代码,因为有些代码在xamarin studio中不适用,因为它是c#。谢谢。

自定义列表视图中的可点击按钮

你不能这样做因为ListView中有很多相同的项目具有相同的id
你必须在适配器的getView()方法中将OnClickListener设置为按钮,如下所示
(这是java代码 android studio,所以它可以不同于c#代码,但主旨是相同的)

Button btn = (Button) convertView.findViewById(R.id.deleteMemo);
btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //here you go
        }
    });

尝试这样做(如果没有Fragments,请删除视图)。下图)

var _view = view.FindViewById<ListView>(Resource.Id.listView1);
if (_view.ChildCount > 0){
Button _button = (Button)_view.GetItemAtPosition(0).GetChildAt(0);
}

因为列表中有很多相似的对象这是我认为访问它们的唯一方法,请记住,项目位置是相对于屏幕上当前可见的项目的,您不能访问不可见的项目