2016-05-07 2 views
0

Я нашел много похожих вопросов, которые большинство из них я видел на Java, но я не знаю, как преобразовать Java-код в C# Xamarin.Второй счетчик зависит от первого счетчика (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;) на звонок.

Смежные вопросы