Android 如何知道在微调器上选择的项目?
我有以下代码:Android 如何知道在微调器上选择的项目?,android,switch-statement,Android,Switch Statement,我有以下代码: @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Object item = parent.getItemAtPosition(position); Toast.makeText(this, "You selected " +item.toString(), Toast.LENGTH_SHORT).show()
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Object item = parent.getItemAtPosition(position);
Toast.makeText(this, "You selected " +item.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Toast.makeText(this, "You didn't select any preset", Toast.LENGTH_SHORT).show();
}
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Object item=parent.getItemAtPosition(位置);
Toast.makeText(此“您选择的”+item.toString(),Toast.LENGTH\u SHORT.show();
}
@凌驾
未选择公共无效(AdapterView父级){
Toast.makeText(这是“您没有选择任何预设”,Toast.LENGTH_SHORT.show();
}
和以下数组:
<string-array name="presets_array">
<item>Light Car</item>
<item>Medium Car</item>
<item>Heavy Car</item>
<item>Van</item>
</string-array>
轻型汽车
中型车
重型汽车
厢式货车
它工作正常,当我选择轻型车时,它会显示正确的文本,等等。
但我想做更多的事情,如果选择的东西是货车,改变重量值,如果中型车,其他成本,等等
我想我必须使用开关,但我不确定它是如何工作的。您可以在所选方法中编写类似于此代码的代码:
switch (item)
{
轻型汽车:
//托德
中断
箱式货车:
//待办事项
打破
}有一些选择。你应该选择最适合你的 只是检查位置 性能良好,但如果更改数组顺序,则必须对switch语句重新排序
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Object item = parent.getItemAtPosition(position);
Toast.makeText(this, "You selected " + item.toString(), Toast.LENGTH_SHORT).show();
swith(position) {
case 0:
// CODE for Light Car
break;
case 1:
// CODE for Medium Car
break;
case 2:
// CODE for Heavy Car
break;
case 3:
// CODE for Van
break;
}
}
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Object item=parent.getItemAtPosition(位置);
Toast.makeText(此“您选择的”+item.toString(),Toast.LENGTH\u SHORT.show();
开关(位置){
案例0:
//轻型汽车代码
打破
案例1:
//中型车代码
打破
案例2:
//重型汽车代码
打破
案例3:
//货车代码
打破
}
}
字符串检查
性能低下,因为在最坏的情况下必须多次比较字符串
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Object item = parent.getItemAtPosition(position);
Toast.makeText(this, "You selected " + item.toString(), Toast.LENGTH_SHORT).show();
if(item.toString().equals("Light Car")) {
// CODE
} else if(item.toString().equals("Medium Car")) {
// CODE
} else if(item.toString().equals("Heavy Car")) {
// CODE
} else if(item.toString().equals("Van")) {
// CODE
}
}
@覆盖
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Object item=parent.getItemAtPosition(位置);
Toast.makeText(此“您选择的”+item.toString(),Toast.LENGTH\u SHORT.show();
if(item.toString().equals(“轻型汽车”)){
//代码
}如果(item.toString().equals(“中型车”)){
//代码
}如果(item.toString().equals(“重型汽车”)){
//代码
}else if(item.toString().equals(“Van”)){
//代码
}
}
但我应该在每个箱子后面加上什么?轻型车,货车。。。不被承认。我可以放置R.array.presets\u数组,但不能放置每个字符串,它们不会显示在R.string下。我从您的问题中了解到,您希望使用微调器中的不同选定项执行不同的操作,能否告诉我您希望对每个选定项执行什么操作,以及是否可以从应用程序中为我提供布局的屏幕截图。还有xaml代码。