我有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>
答案 0 :(得分:0)
通过使用setId()
,您将更改与RadioButton
关联的标识符,该标识符用于在视图树中查找它。您可能应该使用setTag()
代替getTag()
。此方法允许您将一些不透明的数据对象附加到视图,以后可以使用{{1}}方法检索。