2013-05-09 3 views
1

Так просто, как кажется, я не смог найти простой способ решения этого вопроса, у меня есть простое представление списка переключателей, и я хочу извлечь значение переключателя, выбранного при событии нажатия кнопки ,Android ListView с RadioButton

Вот код, который вы, возможно, видели в миллионах других местах.

public class RadioListActivity extends ListActivity { 
    @Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setListAdapter(new ArrayAdapter<String>this,android.R.layout.simple_list_item_single_choice, CONTENT)); 

    final ListView listView = getListView(); 
    listView.setItemsCanFocus(false); 
    listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
} 

private static final String[] CONTENT = new String[] {"bla1","bla2","bla3","bla4","bla5"}; 
} 

Любая помощь приветствуется! :]

ответ

2

Ответ лежит в двух простых строк кода, которые я должен был роются в течение нескольких дней в конце.

Просто добавив следующие две строки к событию onClick, вы получите индекс выбранного элемента вместе со значением на нем!

   ListView l=getListView(); 
       Object obj=l.getItemAtPosition(l.getCheckedItemPosition()); 

Надеюсь, что кто-то найдет полезное. Ура!

1

извлекает значение переключателя, выбранного при событии нажатия кнопки.

вы можете получить выбранное значение из ListView с помощью ListView.getSelectedItemPosition, как на кнопки мыши:

@Override 
    public void onClick(View v) 
    { 
     int selectedindex=RadioListActivity.this. 
          getListView().getSelectedItemPosition(); 

     String str_selectedtxt=CONTENT[selectedindex];  
    } 
+0

Он выбрасывает ArrayIndexOutOfBoundsException (: length = 14; index = -1 или какой-то случайный бред). Любая помощь? –

+0

@GarimaTiwari: привет Гарима, просто поставьте условие проверки индекса, прежде чем получать значение из массива. вы получаете ошибку bez, возможно, возможно, ни один элемент не выбран в ListView –

+0

Для любого значения im, выбираемого в списке радиопередач, он выбрасывает ту же ошибку, что и выше. Можете ли вы опубликовать код для условия проверки индекса, о котором вы говорите? Я тебя не понял. –

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