У меня есть ListAdapter
, который заполняет список TextView категории и RadioButton
, который необходимо проверить. Таким образом, проблема в том, что я хочу, чтобы пользователь определял, какую категорию он хочет в списке, и когда он нажимает на RadioButton
, другие должны быть сняты и т. Д. Мне нужно как-то установить идентификатор этого RadioButtons, и я делаю это в методе getView(...)
в ListAdapter
, но когда он вызывает второй раз этот метод, он не находит, что RadioButton
, и я получаю ошибку при попытке установить ID это представление RadioButton. Я отлаживал его, и первый раз он находит вид через метод findViewById
, но второй раз это не так.ListAdapter не получает вид
Я думаю, что, возможно, я знаю, что проблема для него -> когда второй раз, чтобы найти представление по ID, он не может найти его, так как я положил уже другой Идентификатор при первом вызове, но как я могу установить уникальные идентификаторы для моих RadioButtons в списке?
Вот мой код: GetView:
public View getView(int index, View view, ViewGroup parent) {
if (view == null){
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
view = inflater.inflate(R.layout.category_item, parent, false);
}
ListCategoryItem category = categories.get(index); // categories is list
TextView title = (TextView) view.findViewById(R.id.categoryTitle);
naziv.setText(kategorija.getNazivKategorije());
RadioButton radioBtn = (RadioButton) view.findViewById(R.id.categoryRadioButton);
radioBtn.setId(category.getIdCategory());
return view;
}
и вот мой макет для category_item:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/categoryTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:paddingTop="5dp"
/>
<RadioButton
android:id="@+id/categoryRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textSize="15sp"
android:onClick="onRadioButtonClick"/>
Итак, как установить уникальный идентификатор для моих Radiobuttons или я могу каким-то образом создать группу RadioButtons, которая будет заботиться о себе, когда другая проверены, другие - неконтролируемые - что-то, как в HTML-решении.
Посмотрите http://stackoverflow.com/questions/7329856/how-to-use-radiogroup-in-listview-custom-adapter – trebron
Спасибо, что помогло, и этот пост: http: //developmentality.wordpress .com/2010/11/05/из резиновых штампов-и-флажки-почему-ваш-ListView-это-испорченные / – Tommz