実際に選択したインデックスを返すことができる複数選択リストビューを作成する方法があるのだろうかと思いました。私はあらかじめ作られたmultiplechoicelistviewアダプタでそれを行うことができましたが、私はそれのスタイルを編集することができる必要があります。だから私はカスタムリストビューが必要です。 これは私が今必要なのは、その確認ボタンは、私が選択したものを保存する方法を見つけ出すことです私のOnCreateのコードXamarin custom multiple choice listview
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Options);
outList = FindViewById<ListView>(Resource.Id.outList);
var btnCheck = FindViewById<ImageButton>(Resource.Id.btnConfirm);
var btnBack = FindViewById<ImageButton>(Resource.Id.btnBack);
for (int i = 0; i < NewProfileVars.LifeStyles.Length; i++)
{
inList.Add(NewProfileVars.LifeStyles[i].Name);
}
//list contents end here
ListViewAdapter adapter = new ListViewAdapter(this, inList);
outList.Adapter = adapter;
outList.ChoiceMode = ChoiceMode.Multiple;
NewProfile main = new NewProfile();
btnCheck.Click += Confirm;
btnBack.Click += Back;
}
そして、ここでは私のリストビューアダプターコード
class ListViewAdapter: BaseAdapter<string>
{
public List<string> Items;
public Context Context;
public ListViewAdapter(Context context, List<string> items)
{
Items = items;
Context = context;
}
public override int Count
{
get { return Items.Count; }
}
public override long GetItemId(int position)
{
return position;
}
public override string this[int position]
{
get { return Items[position]; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
if (row == null)
{
row = LayoutInflater.From(Context).Inflate(Resource.Layout.ListBox, null, false);
}
CheckBox txtName = row.FindViewById<CheckBox>(Resource.Id.cbName);
txtName.Text = Items[position];
return row;
}
}
です。 アドバイスをいただきありがとうございます。
あなたはウィザードですあなたはこれほど多くの年齢で私を悩ませています。リスト項目はすでにブール値を持つ構造体に属していたので、listviewアダプタはその構造体を使用しました。 もう一度、本当にありがとうございます。 –
うれしかった! – apineda
待ってくださいそれは単一選択ラジオボタンのためにどのように動作するか知っていますか? –