如何知道在微调器上选择的项目?

时间:2016-08-02 21:59:37

标签: 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 onNothingSelected(AdapterView<?> parent) {

    Toast.makeText(this, "You didn't select any preset", 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>

它工作正常,当我选择Light car时,它会显示正确的文本,等等。 但我想做更多的事情,如果选择的东西是范,改变重量值,如果中型车,其他成本等。

我想我必须使用开关,但我不确定它是如何工作的。

2 个答案:

答案 0 :(得分:2)

有一些选择。你应该选择最适合你的......

只是检查位置

性能良好但如果更改数组顺序,则必须重新排序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();

    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
    }
}

字符串检查

性能低,因为在最坏的情况下你必须多次比较字符串。

recyclerView.scrollToPosition()

答案 1 :(得分:0)

你可以在onItemSelected方法中编写类似于这段代码的代码:

switch (item)

{    案例轻型车:    // TODD     打破;

案例范:   // 去做   打破; .......

}