native speakerem, więc przykro mi z powodu moich złych angielskich umiejętności.Dlaczego metoda onNothingSelected jest wymagana w słuchaczu typu spinner?
Studiuję Androida od 5 tygodni. Próbowałem zaimplementować spinner, a mój mentor zapytał, dlaczego potrzebna jest metoda onNothingSelected. Nie miałem nic do powiedzenia.
Dlaczego więc potrzebuję tej metody? Czy możesz odpowiedzieć?
Następujący kod to mój spinner. Działa prawidłowo, co zamierzałem.
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();
}
});
}
}
"onNothingSelected" to metoda wywołania zwrotnego, która ma zostać wywołana, gdy zaznaczenie zniknie z tego widoku. – DroidBender
O ile widzę, potrzebujesz go, by pokazać toast? Więc informujesz użytkownika, że nie wybrał nic. Po prostu spróbuj sam, skomentuj te linie kodu i sprawdź, jak działa twoja aplikacja. – sandkasten