自定义列表视图中的可点击按钮
我的问题是我无法使我在自定义列表视图中添加的按钮可点击。自定义列表视图中的可点击按钮
这里是我的自定义列表视图的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.Click事件,但它只是产生一个错误。从我读过类似的问题,他们的按钮初始化在他们的数组适配器,但我使用SimpleCursorAdapter,因为我从我的sqlite数据库中获取数据。
那我该怎么办?请不要给我java代码,因为它们不适用于xamarin工作室,因为它是c#。谢谢。
你不能做这种方式,因为你必须在ListView中)有很多相同的项目具有相同的IDS
您必须设置OnClickListener到您的按钮在你的适配器的getView(方法是这样
(这是用java代码为Android工作室,因此它可以从C#代码,不同,但主旨是一样的)
Button btn = (Button) convertView.findViewById(R.id.deleteMemo);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//here you go
}
});
尝试是这样的(如果没有片段删除视图下方。)
var _view = view.FindViewById<ListView>(Resource.Id.listView1);
if (_view.ChildCount > 0){
Button _button = (Button)_view.GetItemAtPosition(0).GetChildAt(0);
}
因为列表上有很多类似的对象,这是我认为访问它们的唯一方式,请记住,项目位置是相对于屏幕上当前可见的项目,并且不能访问不可见
好的,我会试试这个。谢谢 –
检查此线程可能对您有用https://forums.xamarin.com/discussion/29748/creating-a-layout-for-a-fragment-that-views-can-be-added-and-removed - 动态 – CDrosos
我找到了另一种方式(不使用按钮)。谢谢 –
另一种方法是将“onClick”属性设置为按钮。给它一个方法名称的值。 –
我已经试过这个,它会产生一个错误 –