2015-09-14 81 views
0

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

这里是我的自定义列表视图的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#。谢谢。

回答

2

你不能做这种方式,因为你必须在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 
     } 
    }); 
+0

另一种方法是将“onClick”属性设置为按钮。给它一个方法名称的值。 –

+0

我已经试过这个,它会产生一个错误 –

0

尝试是这样的(如果没有片段删除视图下方。)

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

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

+0

好的,我会试试这个。谢谢 –

+0

检查此线程可能对您有用https://forums.xamarin.com/discussion/29748/creating-a-layout-for-a-fragment-that-views-can-be-added-and-removed - 动态 – CDrosos

+0

我找到了另一种方式(不使用按钮)。谢谢 –

相关问题