2016-05-07 5 views
0

私がJavaで見た多くの類似した質問が見つかりましたが、JavaコードをC#Xamarinに変換する方法はわかりません。ここで2番目のスピナーは最初のスピナー(Xamarin VS)に依存します

は、私が見つけたコードです:from here

month.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int pos, long id) { 
      // TODO Auto-generated method stub 
      List<String> s = Arrays.asList(getResources().getStringArray(R.array.item_day)); 
      if (pos == 0 || pos == 2 || pos == 4 || pos == 8 || pos == 9 
        || pos == 11) { 
       ArrayAdapter<String> dayadapter = new ArrayAdapter<String>(Latlondemo.this, android.R.layout.simple_spinner_item,s); 
       day.setAdapter(dayadapter); 
      } else if (pos == 1) { 
       s = s.subList(0,28);      
       ArrayAdapter<String> dayadapter = new ArrayAdapter<String>(Latlondemo.this, android.R.layout.simple_spinner_item,s); 
       day.setAdapter(dayadapter); 
      } else { 
       s = s.subList(0,30);      
       ArrayAdapter<String> dayadapter = new ArrayAdapter<String>(Latlondemo.this, android.R.layout.simple_spinner_item,s); 
       day.setAdapter(dayadapter); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

私は特にこの行を参照しています:

List<String> s = Arrays.asList(getResources().getStringArray(R.array.item_day)); 

そのC#の対応は?

ここに私のコードは、これまでのところ、次のとおりです。

 spinner1 = FindViewById<Spinner>(Resource.Id.spinner1); 
     spinner2 = FindViewById<Spinner>(Resource.Id.spinner2); 

     var adapter1 = ArrayAdapter.CreateFromResource(
       this, Resource.Array.building_array, Android.Resource.Layout.SimpleSpinnerItem); 
     var adapter2 = ArrayAdapter.CreateFromResource(
       this, Resource.Array.level_array, Android.Resource.Layout.SimpleSpinnerItem); 

     adapter1.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); 
     adapter2.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); 
     spinner1.Adapter = adapter1; 
     spinner2.Adapter = adapter2; 
     spinner1.ItemClick += (sender, e) => { 

     // code here 

     }; 

文字列リソース:

<resources> 
    <string-array name="building_array"> 
    <item>1</item> 
    <item>2</item> 
    <item>3</item> 
    <item>4</item> 
    </string-array> 
    <string-array name="level_array"> 
    <item>1</item> 
    <item>2</item> 
    <item>3</item> 
    <item>4</item> 
    </string-array> 
</resources> 

答えて

1

C#のカウンターパートが

var arr = Resources.GetStringArray(Resource.Array.building_array); 

これはAndroidのコンテキストで有効で、例えばありますあなたの活動は、Resourcesです。

List<sting>にしたい場合は、.ToList()(必要:using System.Linq;)をコールに追加するだけです。

関連する問題