我試圖用對話框片段中的自定義適配器創建一個listview。問題是Listview沒有顯示在片段中。如果我將視圖放入主要活動中,則會顯示列表+其項目。莫比有人知道什麼是錯我的代碼:Xamarin.Android的ListView在DialogFragment中沒有顯示
MainActivity class
public class MainActivity : Activity
{
private List<string> serialNumbers = new List<string> { "test1", "test2" };
private SerialDialog dialog = new SerialDialog();
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
dialog.Show(FragmentManager, "SerialDialog");
}
}
SerialDialog class
class SerialDialog : DialogFragment
{
private View view = null;
private List<string> serialNumbers = new List<string> { "test" };
private ListView listView;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);
view = inflater.Inflate(Resource.Layout.EnterSerial, container, false);
listView = view.FindViewById<ListView>(Resource.Id.SerialListView);
listView.Adapter = new CustomAdapter(Activity, serialNumbers);
return view;
}
public override void OnActivityCreated(Bundle savedInstanceState)
{
Dialog.Window.RequestFeature(WindowFeatures.NoTitle);
base.OnActivityCreated(savedInstanceState);
}
}
CustomAdapter類
public class CustomAdapter : BaseAdapter<string>
{
private List<string> items = new List<string>();
private Activity context;
public override string this[int position]
{
get
{
return items[position];
}
}
public override int Count
{
get
{
return items.Count();
}
}
public CustomAdapter(Activity context, List<string> items) : base()
{
this.context = context;
this.items = items;
}
public void Add(string item)
{
items.Add(item);
NotifyDataSetChanged();
}
public override long GetItemId(int position)
{
return 0;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
return null;
}
}
EnterSerial.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px"
android:background="@android:color/background_light">
<ListView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="200.5dp"
android:id="@+id/SerialListView"
android:layout_marginBottom="0.0dp" />
</LinearLayout>
我用了一個BaseAdapter,因爲我需要在以後添加元素。 DialogFragment是空白的。調試顯示這些項目在列表中。
謝謝,這解決了我的問題 –