###実現したいこと
Android Javaにてアプリ作成をしております。
ラジオボタンがリストアイテム内にあるリストがあり、そちらのバグが解消できずにいます。
どうかご教示頂きたく存じております。
###発生している問題・エラーメッセージ
ラジオボタンのテキストが表示されなくなるバグが生じております。
以下の状況です。
初回起動にラジオボタンのテキストが表示されている
↓
リストをスクロールし、リストアイテムが画面表示から外れる
↓
再度リストアイテムが表示されるとラジオボタン内のテキストが消えている
###実装内容
Xml部
<RelativeLayout xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/title_area" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/checkBox"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="name" android:id="@+id/display_name" android:layout_centerVertical="true" android:layout_alignParentLeft="true" /> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/item_area" android:layout_below="@+id/title_area" android:layout_toRightOf="@+id/checkBox" android:orientation="horizontal"> <TextView android:id="@+id/radio_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="ラジオ" android:textAppearance="?android:attr/textAppearanceMedium" /> <RadioGroup android:id="@+id/radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/radio_text" /> </RelativeLayout> </RelativeLayout> </RelativeLayout>
Java部
public class CustomAdapter extends BaseAdapter{ ~~ 省略 ~~ @Override public View getView(final int position, View convertView, final ViewGroup parent) { Data data = (Data)getItem(position); final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; viewHolder.radioRadio.removeAllViews(); RadioGroup radioGroup = data.getRadioGroup(); if(radioGroup != null) { viewHolder.radio = radioGroup; } else { ArrayList<String> radioDatas = data.getRadioDatas(); if (radioDatas != null) { for (int i = 0; i < radioDatas.size(); i++) { RadioButton radioButton = new RadioButton(context); String radioData = radioDatas.get(i); radioButton.setText(radioData); String id = String.valueOf((position * 100) + i); radioButton.setId(Integer.parseInt(id)); radioButton.setTag(Integer.parseInt(id)); viewHolder.radioGroup.addView(radioButton , new ViewGroup.LayoutParams(WC , WC)); } } dataList.get(position).setRadioDatas(viewHolder.radio); } return convertView; } }
###備考欄
事情によりcompileSdkVersionが15となっています
あなたの回答
tips
プレビュー