ListAdapter没有获取视图

时间:2013-08-27 13:39:56

标签: android listadapter

我有ListAdapter填充列表,其中包含要查看的类别和RadioButton的TextView。所以,问题在于我希望用户通过List定义他想要的类别,当他点击RadioButton时,其他人应该取消选中,依此类推。我需要以某种方式设置此RadioButtons的ID,并且我在getView(...) ListAdapter方法中执行此操作但是当它要求第二次该方法时,他不会找到RadioButton并在尝试设置此RadioButton视图的ID时出错。我正在调试它,第一次通过方法findViewById找到视图,但第二次没有。

我想我可能知道它的问题 - >当第二次按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设置唯一标识符,或者我可以以某种方式制作一组RadioButton,它们会关心自己,当其他人被检查时,其他人将被取消选中 - 这是HTML中的解决方法。< / p>

1 个答案:

答案 0 :(得分:0)

通过使用setId(),您将更改与RadioButton关联的标识符,该标识符用于在视图树中查找它。您可能应该使用setTag()代替getTag()。此方法允许您将一些不透明的数据对象附加到视图,以后可以使用{{1}}方法检索。