1

LinearLayout アイテムでリストビューを実装したい (CheckedTextView と複数のテキストビューが含まれます)。
だから私はListViewでCheckedTextViewの代わりにLinearLayoutを使いたい。試しましたが、ラジオボタンの状態が変わりません。
私のコード:

    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    getListView().setItemsCanFocus(false);
    setListAdapter(new ArrayAdapter(this,R.layout.list_item,android.R.id.text1,COUNTRIES));

list_item

 <CheckedTextView
        .....
        />

このように欲しい
list_item_new

<LinearLayout>
        .....
        <CheckedTextView/>
        <TextView/>
.....
</LinearLayout>
4

1 に答える 1

0

リスト アイテムの表示方法をカスタマイズする場合は、独自のアダプターを実装する必要があります。思ったよりずっと簡単です。基本的なコードは次のとおりです。

public class MyAdapter extends BaseAdapter {
    List myData;
    Context context;

    public MyAdapter(Context ctx, List data) {
        context = ctx;
         myData = data;
    }

    public int getCount() { return myData.size(); }

    public Object getItem(int pos) { return myData.itemAt(pos); }

    public int getItemId(int pos) { return pos; }

    public View getView(int position, View convertView, ViewGroup parent) {
        //this is where you create your own view with whatever layout you want
        LinearLayout item;
        if(convertView == null) {
            //create/inflate your linear layout here
            item = ...;
        }
        else {
            item = (LinearLayout) convertView;
        }

        //now create/set your individual components inside your layout based on your element
        //at the requested position
        ...
    }
}

それだけです。

于 2012-04-04T11:35:29.760 に答える