0

こんにちは私はAndroidを初めて使用し、データがリストビューに表示される1つのアプリケーションを開発しています。Listviewには、1つのtextviewとスピナーが含まれています。ただし、特定の条件の場合、たとえば、ユーザーが選択したい1つ以上の選択肢がある1つの資格フィールドがある場合。したがって、その特定の条件で、複数のチェックボックスを指定する必要があります。データはWebサービスを通過します。そのデータをPOJOに保存しています。そして、私はすでにインフレータを使用してテキストビューとスピナーのために開発しています。しかし、私はそのチェックボックスコントロールの問題に直面しています。特定の状態が発生したときに動的にチェックボックスを設定する方法。 問題

編集私はそのために2つの別々のXMLファイルを作成しています。そのチェックボックスXMLファイルには次のコードを使用します。

public View getView(final int position, View convertView, ViewGroup parent) {
    for (int k = 0; k < values.length; k++) {   
        convertView = inflater.inflate(R.layout.filter_brands, null);  
    }
}

ただし、XMLファイルは呼び出しのみです。値には7が含まれています。

4

2 に答える 2

0

すでに何らかのカスタムアダプタを使用していて、そのアダプタのgetView()でビューを拡張していると想定しています。これで、必要に応じてチェックボックスを使用して別のxmlファイルを作成するだけです。条件に基づいて、適切なxmlを膨らませ、必要に応じてチェックボックスのテキストを初期化します。

たとえば、このようなxmlがあるとしましょう。これはradio_buttons.xmlと呼ばれます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >

        <RadioButton
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButton" />

    </RadioGroup>

</LinearLayout>

次に、コードで条件を使用して、デフォルトのxmlの代わりにこのxmlを拡張します。

view.findViewById(R.id.button1)を実行してテキストを設定することにより、ラジオボタンからテキストを取得できます。

于 2012-06-28T17:13:15.930 に答える
0

マイクの答えのコメントに投稿されたアイデアに従うことをお勧めします。

しかし、本当にプログラムで何かを作成したい場合は、この方法で行うことができます。

CheckBox check1 = new CheckBox(YourClassName.this);
CheckBox check2 = new CheckBox(YourClassName.this);

...
 LinearLayout ll = new LinearLayout(this);
 ll.setOrientation(1);

        ll.addView(check1,0);
        ll.addView(check2,1);
于 2012-06-28T17:37:27.220 に答える