片段xamarin中的自定义列表视图(如何从片段中调用自定义列表视图适配器)
本文关键字:列表 片段 自定义 视图 调用 适配器 xamarin | 更新日期: 2023-09-27 18:13:53
(如何从片段中调用自定义列表视图适配器)
任何调用自定义列表视图适配器并显示列表的方法。
我有"家"。
我需要从Home.cs(列表片段)调用一个自定义列表视图适配器,并在Home.axml
中显示它下面是我的代码。namespace AndroidApp2.Fragments
{
public class Home : ListFragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var adapter = new ArrayAdapter<String>(Activity, Android.Resource.Layout.SimpleListItemChecked, allheading);
ListAdapter = adapter;
return base.OnCreateView(inflater, container, savedInstanceState);
}
}
}
上面的代码是我使用的,它对我来说工作得很好。但是如何创建一个服装列表视图适配器,能够从片段调用?
Home.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<fragment
android:id="@+id/heading_fragment"
android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/details"
android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent" />
</LinearLayout>
Take a look on this code. I manged to call it from fragment, i only had to set the context properly otherwise i got this error "Window.getLayoutInflater()' on a null object reference".
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var view = inflater.Inflate(Resource.Layout.TagDialog, container, false);
Button confirmBtn = view.FindViewById<Button>(Resource.Id.ConfirmBtn);
Button cancelBtn = view.FindViewById<Button>(Resource.Id.CancelBtn);
AbsenceService service = new AbsenceService();
ListViewTags = view.FindViewById<ListView>(Resource.Id.TagListView);
TagItems = service.GetTags(1);
ListViewTags.Adapter = new Cards_TagListAdapter(context, TagItems);
// "Cancel" click
cancelBtn.Click += delegate {
Dismiss();
};
confirmBtn.Click += ConfirmBtn_Click;
return view;
}