第二个微调器取决于第一个微调器(Xamarin VS)
Second spinner depends from first spinner (Xamarin VS)
我发现了很多类似的问题,我在 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>
对应的 C# 是
var arr = Resources.GetStringArray(Resource.Array.building_array);
这在 Android 上下文中有效,例如你的 Activity,因为 Resources
是它的 属性。
如果您希望它成为 List<sting>
,只需在调用中附加一个 .ToList()
(需要:using System.Linq;
)。
我发现了很多类似的问题,我在 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>
对应的 C# 是
var arr = Resources.GetStringArray(Resource.Array.building_array);
这在 Android 上下文中有效,例如你的 Activity,因为 Resources
是它的 属性。
如果您希望它成为 List<sting>
,只需在调用中附加一个 .ToList()
(需要:using System.Linq;
)。