以英语为母语的人,所以我要对你们的英语能力表示抱歉。
我从5周前开始研究Android。我试图实现一个微调器,我的导师问为什么需要onNothingSelected方法。我无话可说。
那么,为什么我需要这种方法?你能回复吗?
以下代码是我的微调器。它正确地做了我想要的。
public class SpinnerViewPractice extends Activity {
private Spinner spinner;
private String spinner_value = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.spinnerviewpractice);
spinner = (Spinner)findViewById(R.id.spinner1);
String[] str = {"","good", "dislike", "like", "hate", "moderate"};
spinner.setPrompt("Set Text");
ArrayAdapter<String> list = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, str);
spinner.setAdapter(list);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
TextView tv = (TextView)arg1;
spinner_value = tv.getText().toString();
if(spinner_value.length() == 0)
{
spinner_value = "Nothing";
}
Toast.makeText(SpinnerViewPractice.this, spinner_value, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Toast.makeText(SpinnerViewPractice.this, "NothingSelected", Toast.LENGTH_SHORT).show();
}
});
}
}
答案 0 :(得分:12)
正如文档所述:
当选择从此视图中消失时要调用的回调方法。例如,当激活触摸或适配器变空时,选择可能会消失。
这意味着只要从可用项列表中删除当前选定的项,就会调用该方法。正如文档所描述的那样,这可能在不同情况下发生,但通常如果修改适配器使得当前所选项目不再可用,则将调用该方法。
可以使用此方法,以便您可以设置在前一项不再可用的情况下选择的项目。这不是让微调器自动选择列表中的下一个项目。
答案 1 :(得分:6)
来自文档here。
onNothingSelected是当选择从此处消失时要调用的Callback方法 视图。例如,当激活触摸时,选择可以消失 或当适配器变空时。
我认为它几乎可以回答你的问题。因此,如果您的微调器因其他原因而消失,除非选择该项目,那么将调用onNothingSelected
。因此,它的名称告诉它需要找出什么时候没有选择