我有以下代码:
@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时,它会显示正确的文本,等等。 但我想做更多的事情,如果选择的东西是范,改变重量值,如果中型车,其他成本等。
我想我必须使用开关,但我不确定它是如何工作的。
答案 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 打破;
案例范: // 去做 打破; .......}