Почему метод onNothingSelected необходим в прослушивании spinner?
родной английский говорящий, поэтому я бы сказал, сожалею о своих плохих английских навыках для вас, ребята.
Я изучал Android с 5 недель назад. Я попытался реализовать spinner, и мой наставник спросил, почему нужен метод 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();
}
});
}
}
Ответы
Ответ 1
Как описано в документации:
Метод обратного вызова, который будет вызываться, когда выбор исчезнет из этого представления. Выбор может исчезнуть, например, когда сенсорный режим активирован или когда адаптер становится пустым.
Это означает, что метод вызывается всякий раз, когда выбранный элемент удаляется из списка доступных элементов. Как описывает документ, это может происходить в разных обстоятельствах, но, как правило, если адаптер изменен таким образом, что текущий выбранный элемент больше не доступен, тогда будет вызван метод.
Этот метод может использоваться, чтобы вы могли выбрать, какой элемент будет выбран, если предыдущий элемент больше не доступен. Это вместо того, чтобы позволить счетчику автоматически выбрать следующий элемент в списке.
Ответ 2
Из документа здесь.
onNothingSelected - метод обратного вызова, который вызывается, когда выбор исчезает из этого Посмотреть. Выбор может исчезнуть, например, при нажатии или когда адаптер становится пустым.
Я думаю, что это в значительной степени отвечает на ваш вопрос. Поэтому, если ваш прядильщик исчезает по другой причине, кроме выбора элемента, тогда будет вызываться onNothingSelected
. Так как это имя говорит, что необходимо выяснить, когда ничего не выбрано