【问题标题】:Second spinner depends from first spinner (Xamarin VS)第二个微调器取决于第一个微调器(Xamarin VS)
【发布时间】:2016-05-07 11:33:24
【问题描述】:

我发现很多类似的问题,我见过的大多数都是在 Java 中,问题是我不知道如何将 Java 代码转换为 C# Xamarin。

这是我找到的代码: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>

【问题讨论】:

    标签: java c# xamarin spinner


    【解决方案1】:

    对应的 C# 是

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

    这在 Android 上下文中有效,例如您的 Activity,因为 Resources 是它的属性。

    如果您希望它是 List&lt;sting&gt;,只需在调用中附加 .ToList()(需要:using System.Linq;)。

    【讨论】:

      猜你喜欢
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 2013-06-05
      相关资源
      最近更新 更多