gpt4 book ai didi

android - 自定义 ListAdapter 问题

转载 作者:行者123 更新时间:2023-11-30 04:20:27 25 4
gpt4 key购买 nike

使用 this我尝试创建一个自定义的 ListAdapter,它将我的所有记录简单地添加为复选框。即使在调试期间我可以看到适配器包含所有 4 个预期记录并且覆盖 int Count 方法返回 4 并且覆盖 View GetView 迭代 4 次,位置变量始终 = 0 并且只有 1 个包含第一条记录的 CheckBox 实际上出现了.

ListView行布局xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<CheckBox
android:id="@+id/checkItem"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

调用管理器.axml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/equipLayout"
android:tag="equip"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_below="@id/place4"
android:layout_margin="8dip"
android:visibility="gone">
<ListView
android:id="@+id/equipLV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
</RelativeLayout>
</ScrollView>

//还有其他几个嵌套的 LinearLayouts,这就是为什么我有 ScrollView 和 RelativeLayouts。不相关,所以为了清洁而忽略了。

调用管理.cs

public class CallManagement : Activity
{
CustomListAdapter listAdapter;

protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);

SetContentView(Resource.Layout.CallManager);

ListView equipLV = (ListView)FindViewById(Resource.Id.equipLV);
listAdapter = new CustomListAdapter(this, callNumber.Substring(0,10));
equipLV.Adapter = listAdapter;

}

自定义 ListAdapter 类

public class CustomListAdapter : BaseAdapter
{
Activity context;
External inst;

public List<equip> equip;

public CustomListAdapter(Activity context, string callNumber)
:base()
{
inst = new External();
this.context = context;
this.equip = new List<equip>();
this.equip = inst.popEquipLV().ToList();
}

public override int Count
{
get { return equip.Count; }
}

public override Java.Lang.Object GetItem(int position)
{
return position;
}

public override long GetItemId(int position)
{
return position;
}

public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = equip[position];
var view = (convertView ??
context.LayoutInflater.Inflate(Resource.Layout.equipLVitem, parent, false)) as LinearLayout;

CheckBox checkItem = (CheckBox)view.FindViewById(Resource.Id.checkItem);
checkItem.Tag = GetItemAtPosition(position).unit.ToString();
checkItem.Text = GetItemAtPosition(position).serial.ToString();

return view;
}

public equip GetItemAtPosition(int position)
{
return equip[position];
}

}

最佳答案

您永远不想将 ListView 放在 ScrollView 中。这可能是问题所在。

关于android - 自定义 ListAdapter 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com