C# 无法从Listview内部获取拾取复选框
我正在开发这个应用程序,其中我在列表视图中有一个文本视图和一个复选框。ListView行的XML如下所示:C# 无法从Listview内部获取拾取复选框,c#,android,xamarin,C#,Android,Xamarin,我正在开发这个应用程序,其中我在列表视图中有一个文本视图和一个复选框。ListView行的XML如下所示: <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="8" android:orientation="vertical" android:id="@+id/linearLayout">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="8"
android:orientation="vertical"
android:id="@+id/linearLayout">
<TextView
android:text="Name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/deliverNumberTextView"
android:textSize="20dp"
android:textColor="@android:color/black"
android:padding="5dp" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/listviewCheckbox"/>
</LinearLayout>
问题是,在执行此代码后,我得到了TextView的值,但我无法更改复选框的可见性,因为“listviewCheckbox”为null
感谢您的帮助。谢谢。试试这个方法::
public class ListAdapter: BaseAdapter
{
// Make this variable global
TextView deliverNumberTextView ;
CheckBox listviewCheckbox
public override View GetView (int position, View convertView, ViewGroup parent)
{
View row = convertView;
if (row == null)
{
row = LayoutInflater.From (_context).Inflate (Resource.Layout.ListviewRow, null, false);
}
deliverNumberTextView = (TextView) row.FindViewById (Resource.Id.deliverNumberTextView);
listviewCheckbox = (CheckBox)row.FindViewById(Resource.Id.listviewCheckbox);
deliverNumberTextView.Text = _deliveries[position].DeliveryNumber;
listviewCheckbox.Visibility = ViewStates.Visible;
return row;
}
}
DeliverNumber文本视图不为空?@ρцσѕρєK否,它不为空,但listviewCheckbox为空。与此相关的错误日志中没有任何实质性内容。尝试了很多事情,最后我改变了策略。谢谢你。
public class ListAdapter: BaseAdapter
{
// Make this variable global
TextView deliverNumberTextView ;
CheckBox listviewCheckbox
public override View GetView (int position, View convertView, ViewGroup parent)
{
View row = convertView;
if (row == null)
{
row = LayoutInflater.From (_context).Inflate (Resource.Layout.ListviewRow, null, false);
}
deliverNumberTextView = (TextView) row.FindViewById (Resource.Id.deliverNumberTextView);
listviewCheckbox = (CheckBox)row.FindViewById(Resource.Id.listviewCheckbox);
deliverNumberTextView.Text = _deliveries[position].DeliveryNumber;
listviewCheckbox.Visibility = ViewStates.Visible;
return row;
}
}