2016-12-21 3 views
0

Я пытаюсь получить выбранный элемент ListView, когда пользователь нажимает кнопку. Я использую следующий код в setOnItemClickListener:getSelectedItem() из ListView при нажатии кнопки

lvequipments.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

      Object o = lvequipments.getItemAtPosition(i); 
      CustomerEquipmentView customerEquipmentView = (CustomerEquipmentView)o; 
      Product product = workOrderPresenter.getCustomerModel().getProduct(customerEquipmentView); 

      Toast.makeText(getBaseContext(), customerEquipmentView.getModelName(), Toast.LENGTH_LONG).show(); 

     } 
    }); 

И тост успешно получает название модели от объекта при выборе различных элементов в ListView. За пределами ListView У меня есть кнопка, которая сохраняет некоторые данные с другой панели. Я пытаюсь извлечь ListView деталь снова здесь, как так

public void saveToDatabase() { 
     Object o = lvequipments.getSelectedItem(); 
     CustomerEquipmentView customerEquipmentView = (CustomerEquipmentView)o; 
     ... 
} 

Но o равно нулю. Оценка lvequipments.getSelectedItem() в точке останова во время запуска также дает значение null. Как успешно получить выбранный элемент из ListView вне метода onItemClick()?

+0

Почему вы ожидаете, что 'getSelectedItem' ничего не вернет? Что-то выбрано в вашем списке? – njzk2

+0

Когда вы нажимаете на элемент в списке, не становится выбранным? – wizloc

+0

нет. это listview находится в CHOICE_MODE, который не является NONE, он может быть проверен. – njzk2

ответ

1
  1. определяет поле Int в классе, как межды SelectedItemIndex
  2. в onItemSelected (...) метод записи SelectedItemIndex = я
  3. в savetodatabase способа получить выбранный элемент по lvequipments.getItemAtPosition (SelectedItemIndex); что вы хотите я думаю
+0

Это единственный способ? Почему не получается getSelectedItem(), похоже, что это должен быть безболезненный способ получить выбранный элемент. – wizloc

+0

Нет, вы можете найти слишком много других способов сделать это. –

+0

и слушатель, которого вы установили, - это щелчок ... –

Смежные вопросы