Есть ли способ использовать setOnClickListener с Android Spinner?

java.lang.RuntimeException - «Не вызывайте setOnClickListener для AdapterView. Возможно, вы хотите использовать setOnItemClickListener вместо этого», но это не правильно. Я использую setOnItemClickListener, чтобы сделать некоторые вещи, основанные на новом выборе, но мне также нужно сделать некоторые вещи, прежде чем пользователь изменит выбор. В частности, я собираю данные для каждого выбора, которые необходимо сохранить в файл, прежде чем перейти к другому выбору, поскольку другой выбор связан с другим набором данных. Есть ли способ использовать setOnClickListener с Android Spinner?

spinner.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Do some stuff before the user changes the selection
        ...

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
            // Do some stuff based onItemSelected
            ...
7
задан jacknad 19 August 2010 в 14:58
поделиться

1 ответ

Вам нужно будет установить прослушиватель кликов в базовом представлении (обычно TextView с id: android.R.id.text1) счетчика. Для этого:

  • Создайте собственный счетчик
  • В конструкторе (с атрибутами) создайте счетчик, указав макет android.R.layout.simple_spinner_item
  • Сделайте findViewById (android.R.id.text1) чтобы получить TextView
  • Теперь установите onClickListener на TextView
5
ответ дан 6 December 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: