2012-04-04 15 views
1

ListViewをLinearLayoutアイテム(CheckedTextViewと複数のテキストビューを含む)で実装したいと思います。
ListViewでCheckedTextViewの代わりにLinearLayoutを使用します。 私は試みましたが、ラジオボタンの状態は変わりません。
私のコード:androidListviewの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 
     ..... 
     /> 

私はあなたがリスト項目が表示されている方法をカスタマイズしたい場合は、あなたが必要と

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

答えて

0

list_item_newこの
ようにしたいです独自のアダプターを実装します。あなたが思うよりずっと簡単です。

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 
     ... 
    } 
} 

これはすべてのコードです。

+0

これがどのように問題を解決するかわかりません。問題は、LinearLayout内のCheckedTextViewが押されたときに状態を変更しないということでしたか? –

+0

@GlennBechこれは試しましたか?私は持っている - それは望むように動作します。 –

+0

CursorAdapterで拡張された入れ子のcheckedTextViewでLinearLayoutを使用しようとしました。それはうまくいかないので、私はこのページで終わったのです。カスタムアダプターはなぜ機能するのですか?この問題の根本は、LinearLayoutがCheckableインターフェイスを実装していないことです。 (http://developer.android.com/reference/android/widget/Checkable.html) –

関連する問題