1
我試圖創建一個包含用戶名和用戶標識的微調器。我只想顯示用戶名而不是用戶ID。但是,當用戶被選中時,我想知道該用戶的userID是什麼。我使用用戶標識符的唯一標識符ID。包含用戶名和用戶標識的微調器,只有用戶名可見
幫助將不勝感激,謝謝。
編輯:解決!我只是保持與ID的數組用相同的順序微調
我試圖創建一個包含用戶名和用戶標識的微調器。我只想顯示用戶名而不是用戶ID。但是,當用戶被選中時,我想知道該用戶的userID是什麼。我使用用戶標識符的唯一標識符ID。包含用戶名和用戶標識的微調器,只有用戶名可見
幫助將不勝感激,謝謝。
編輯:解決!我只是保持與ID的數組用相同的順序微調
您可以自定義適配器爲您的微調:
public class CustomSpinnerAdapter : BaseAdapter
{
readonly Activity _context;
private List<Users> _items;
public ComboBoxAdapter(Activity context, List<Users> listOfItems)
{
_context = context;
_items = listOfItems;
}
public override int Count
{
get { return _items.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 = _items[position];
var view = (convertView ?? context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleSpinnerDropDownItem,
parent,
false));
var name = view.FindViewById<TextView>(Android.Resource.Id.Text1);
name.Text = item.Name;
return view;
}
public Users GetItemAtPosition(int position)
{
return _items[position];
}
}
而且你需要包含用戶信息類:
public class Users
{
int Id{get;set;}
string Name{get;set;}
}
然後,您可以創建並使用數據填充您的微調:
[Activity(Label = "Spinner Activity")]
public class SpinnerActivity : Activity
{
private List<Users> _users;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.LayoutWithSpinner);
var spinner = FindViewById<Spinner>(Resource.Id.spinner);
//you need to add data to _users before creating adapter
var adapter = new CustomSpinnerAdapter(this,_users);
spinner.Adapter = adapter;
spinner.ItemSelected += SpinnerItemSelected;
}
private void SpinnerItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
Toast.MakeText(this, "Id:"+_users[e.Position].Id +" Name"+_users[e.Position].Name, ToastLength.Long).Show();
}
}
投票重新開啓,因爲這是MonoDroid的/ XA marin.android而不是java。雖然這個過程可能非常相似,但不是*相同。 –