Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道在微调器上选择的项目?_Android_Switch Statement - Fatal编程技术网

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代码。