0
Listviewにチェックボックスを追加する必要があります。アンドロイドを使用してラジオボタンとチェックボックスを同じリストビューに追加するにはどうすればよいですか?アンドロイドの同じリストビューにチェックボックスとラジオボタンの両方を追加するコード?
Listviewにチェックボックスを追加する必要があります。アンドロイドを使用してラジオボタンとチェックボックスを同じリストビューに追加するにはどうすればよいですか?アンドロイドの同じリストビューにチェックボックスとラジオボタンの両方を追加するコード?
あなたはあなた自身のリストアダプタ、このようなものにする必要があります。
public class RadioCheckAdapter extends BaseAdapter{
private final RadioCheck[] radiochecks;
RadioCheckAdapter(RadioCheck... radiochecks) {
this.radiochecks = radiochecks;
}
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewGroup item = getViewGroup(convertView, parent);
RadioCheck radiocheck = radiochecks[position];
CheckBox check = (CheckBox)item.findViewById(R.id.check);
RadioButton radio = (RadioButton)item.findViewById(R.id.radio);
if (radiocheck.type==0)
{
check.setVisibility(View.VISIBLE);
radio.setVisibility(View.INVISIBLE);
check.setText(radiocheck.name);
radio.setText("");
}
else
{
check.setVisibility(View.INVISIBLE);
radio.setVisibility(View.VISIBLE);
check.setText("");
radio.setText(radiocheck.name);
}
return item;
}
public ViewGroup getViewGroup(View reuse, ViewGroup parent) {
if(reuse instanceof ViewGroup) return (ViewGroup)reuse;
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
ViewGroup item = (ViewGroup)inflater.inflate(
R.layout.radiocheck_item, null);
return item;
}
}
そして、このようなレイアウト:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<CheckBox
android:id="@+id/check"
android:textSize="20dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<RadioButton
android:id="@+id/radio"
android:textSize="20dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
そして、あなたの活動で:
public class MainActivity extends ListActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new RadioCheckAdapter(
new RadioCheck("Check 1"),
new RadioCheck("Radio 1", 1),
new RadioCheck("Check 2"),
new RadioCheck("Radio 2", 1),
new RadioCheck("Check 3"),
new RadioCheck("Radio 3"),
new RadioCheck("Check 4", 1),
new RadioCheck("Radio 4")));
}
}
を
-
class RadioCheck {
final String name;
int type=0; // 0: check, 1: radio
public RadioCheck(String name)
{
this.name= name;
this.type= 0;
}
public RadioCheck(String name, int type)
{
this.name= name;
this.type= type;
}
}
本当にありがとうございました。 – thej
あなたの歓迎の私の友人。問題が解決した場合は、解答としてマークしてください! – Mbt925