私はAlertdialog
に何回も膨らませたいレイアウトを持っています。私は膨らんだビューを保持するリストを持っており、Resources/values/Strings.xmlで定義されたリソースからAdapter
を作成しました。 これはのstrings.xmlの関連する部分である:C#Visual StudioのXamarin.Android:非常に同じアダプタを使用する複数のスピナー?
<string name="day_prompt">Choose a day</string>
<string-array name="days_array">
<item>Monday</item>
<item>Tuesday</item>
<item>Wednesday</item>
<item>Thursday</item>
<item>Friday</item>
<item>Saturday</item>
<item>Sunday</item>
</string-array>
そしてここではadpterと、リストを作成するために使用するコードです:
//create a list to hold Views
List<View> chooseElements = new List<View>();
//create a new adapter to be fed with data defined in vals/Strings
var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.days_array, Android.Resource.Layout.SimpleSpinnerItem);
//set its source to prev mentioned
adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
for (int i = 0; i < numberOfDays; i++)
{
//creating a custom number of elements
SetUpItems(Resource.Id.dayPicker, Resource.Layout.ChoosingDay, alertHolder, adapter, chooseElements);
}
私は内部Spinner
要素のidを見つけたいですリスト内の実際の(最新の)ViewGroup
要素を削除します。しかし、私の問題は、最初にSpinner
のアダプタを設定できるだけで、他のすべての要素はアダプタが接続されていないように見えます。アダプタ1個はの1個のみ要素にしか使用できません。 はここに関連するコードです:
void SetUpItems(int idOfSpinner, int idOfElement, View alertDialogHolder, ArrayAdapter ad, List<View> list)
{
list.Add(LayoutInflater.Inflate(idOfElement, alertDialogHolder.FindViewById<LinearLayout>(Resource.Id.mainHolder)));
#region Spinner
Spinner spinner = new Spinner(this);
//spinner = alertDialogHolder.FindViewById<Spinner>(idOfSpinner);
spinner = list[list.Count - 1].FindViewById<Spinner>(idOfSpinner);
spinner.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(Spinner_ItemSelected);
//var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.days_array, Android.Resource.Layout.SimpleSpinnerItem);
//adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinner.Adapter = ad;
#endregion
}
私はXamarinにかなり新しいので、私は本当に同じアダプタで複数のSpinners
を処理する方法がわからない(または、それが実際に可能である場合)。私は無駄に多くのソリューションを試して、私は同じアダプタで複数のSpinner
を処理する上で任意のリソースを見つけることができませんでした。誰かが私にこれに関するアドバイスをくれますか?
を見て、あなたは1つのビュー内のいくつかの 'Spinner'sを持っており、初回のみが正常にアダプタを設定することができ、同じアダプタを持つ他の人は動かないのですか? –
はい、それより少し複雑です:私は_inflation_を通して 'Spinner'要素を作成しますが、私はそれらのすべてのためにアダプタを設定しましたが、最初のものだけがアダプタを持つようです。 – rTECH