c# - 如何将数据集的数据绑定到列表视图?
问题描述
我已经使用了来自 Web 服务的数据集,我想将数据字段绑定到列表视图中,但我不知道该怎么做,因为我只想从数据集中绑定一些字段而不是所有字段。list_adapter 中的布局是我想从数据集中绑定的数据。
这是我的数据集的 Web 方法。
public System.Data.DataSet RequestTxnReceipt(string strIdentity, string strDateFrom, string strDateTo, string strLocIp, string strDomain) {
object[] results = this.Invoke("RequestTxnReceipt", new object[] {
strIdentity,
strDateFrom,
strDateTo,
strLocIp,
strDomain});
return ((System.Data.DataSet)(results[0]));
}
数据列表.cs
DataSet ds = ws.RequestTxnReceipt(userName, "", "", "", "");
list_adapter.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llContainer"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/transNo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:text="#20190506170757987"
android:background="#ff2196c8"
android:textColor="#ffffffff" />
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/imageView1"/>
<TextView
android:text="Date :"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:id="@+id/date"
/>
<TextView
android:text="Recipient :"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:id="@+id/recipient"
/>
<TextView
android:id="@+id/currency"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:text="Currency :" />
<TextView
android:text="Transaction :"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:id="@+id/transaction" />
<TextView
android:text="Slip Verified :"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:id="@+id/slip" />
<ImageButton
android:id="@+id/btnCamera"
android:src="@drawable/camera48"
android:layout_width="80dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
</LinearLayout>
解决方案
在你的 adapter.cs
添加属性和方法
public List<YourModel> dataSource;
public void AddData(List<YourModel> list)
{
list.AddRange(list);
NotifyDataSetChanged();
}
调用该方法并将数据集作为参数传递给适配器。
在方法中GetView
public override View GetView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView =LayoutInflater.From(parent.Context).Inflate(Resource.Layout.list_adapter, null);
}
YourModel model = dataSource[position] as YourModel;
//for example , you want to set the text of textview
TextView view = convertView.FindViewById<TextView >(Resource.Id.transNo);
view.Text=model.xxx;
return convertView;
}
或者你可以参考https://proandroiddev.com/android-data-binding-listadapter-9e72ce50e8c7
推荐阅读
- database - Neo4j 基于条件的输出
- python - Selenium 和 Python:使用动态 XPATH 查找元素
- javascript - 从 Websocket 函数中获取值
- debian - 使用 LUKS 接收“此密码没有可用的密钥”
- windows - 批处理:从文件名(子字符串)创建文件夹
- javascript - 在 selectionchange() 上从数组中弹出元素
- r - 两个两个(或按名称)绑定列表中的数据框 - R
- r - R Shiny:如何对数据框进行子集化然后排序?
- vb.net - Fillyby 函数不读取程序结果
- python - 在 Python 循环中追加