Можете ли вы дать мне структуру данных? Один ProgressionID для одного ProgressionName?
Если это так, вы можете создать модель для Progression
, которая содержит два свойства, например следующую структуру данных.
public class Progression
{
public string ProgressionIDs { get; set; }
public string ProgressionNames { get; set; }
}
Я использую данные stati c для заполните List<Progression>
. Когда вы щелкаете по элементу в просмотре списка, вы можете получить его, а затем записать в него, чтобы получить имя в List<Progression>
List<Progression> progressions;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.layout1, container, false);
ListView listView1 = view.FindViewById<ListView>(Resource.Id.listView1);
progressions = new List<Progression>();
progressions.Add(new Progression() { ProgressionIDs="1" , ProgressionNames= "Vegetables" });
progressions.Add(new Progression() { ProgressionIDs = "2", ProgressionNames = "Fruits" });
progressions.Add(new Progression() { ProgressionIDs = "3", ProgressionNames = "Flower Buds" });
progressions.Add(new Progression() { ProgressionIDs = "4", ProgressionNames = "Legumes" });
progressions.Add(new Progression() { ProgressionIDs = "5", ProgressionNames = "Bulbs" });
progressions.Add(new Progression() { ProgressionIDs = "6", ProgressionNames = "Tubers" });
var myAdapter=new MyAdapter(this.Activity, progressions);
listView1.Adapter = myAdapter;
listView1.ItemClick += ListView1_ItemClick;
return view;
}
private void ListView1_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
var myPostion= e.Position;
Progression progression = progressions[myPostion];
Toast.MakeText(this.Activity,progression.ProgressionIDs+" "+progression.ProgressionNames,ToastLength.Short).Show();
}
. Вы должны создать BaseAdapter для вашего адаптера просмотра списка.
public class MyAdapter : BaseAdapter<Progression>
{
private Activity mActivity;
private List<Progression> items;
public MyAdapter(Activity mActivity, List<Progression> progressions)
{
this.mActivity = mActivity;
this.items = progressions;
}
public override Progression this[int position] => items[position];
public override int Count => items.Count();
public override long GetItemId(int position)
{
return position;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
if (view == null) // no view to re-use, create new
view = mActivity.LayoutInflater.Inflate(Resource.Layout.SimpleListItem1, null);
view.FindViewById<TextView>(Resource.Id.textView1).Text = items[position].ProgressionIDs;
view.FindViewById<TextView>(Resource.Id.textView2).Text = items[position].ProgressionNames;
return view;
}
}
Здесь код относится к SimpleListItem1
.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:text="test1"
android:layout_marginRight="@dimen/abc_action_bar_content_inset_material"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView2"
android:text="test2"
/>
</LinearLayout>
Здесь работает GIF.