2011-09-22 2 views
0

「をsimple_list_item_checked」を使用します。すべてが正常に機能しています - 追加されたアイテムをクリックするとonListItemClick()が呼び出され、 'View v'パラメータを使用してエントリのチェックボックスをオン/オフできます。(前)を選択し、チェックボックスを<strong>チェックボックス</strong>との単純なリスト項目を実装<strong>simple_list_item_checked</strong> -layoutと私は一緒に<strong>ListActivity</strong>クラスを使用してい

しかし、私がまだ理解できなかったことは、ユーザーインタラクションなしでチェックボックスを選択する方法です。

最小限のは、これまでのところ、私の意向を示すコードスニペットを作業:事前に

package org.test; 

import android.app.ListActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.CheckedTextView; 
import android.widget.ListView; 

public class TestActivity extends ListActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ArrayAdapter<String> list_elems = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked); 
     list_elems.add("foobar"); 
     //TODO: check added entry labeled "foobar" 
     setListAdapter(list_elems); 
    } 

    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 
      CheckedTextView check = (CheckedTextView)v; 
     check.setChecked(!check.isChecked()); 
    } 
} 

おかげでたくさん!

DATEN

答えて

0

使用あなたのListActivityためListAdapterとしてSimpleListAdapter。 2つの列を使用します(1つは文字列用、もう1つはチェック値用)。システムは単独でそれを処理します。あなたは、単一または複数の根底にあるリストビューのchoicemodeを設定する必要が

:ここで良いexample

+0

ありがとうございました。しかし、これらのソリューションはすべてデータベースのようなものを指すカーソルを使用しています。私は既に、そのリストで表現したいストリングの配列を持っています。既存のデータベース以外のデータでSimpleListAdapterを使用する方法を示す例はありますか? – daten

+0

誤解をおかけして申し訳ありませんが、私はSimpleAdapterと言います。マップの配列を渡し、マップのどの要素をビューの各要素に使用するかを指定できます。この例のcursorパラメータをマップのリスト(List <?extends Map >)に置き換えてください。 –

2

は、これが私の作品です。

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ArrayAdapter<String> list_elems = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_checked); 
     list_elems.add("foobar"); 
     //TODO: check added entry labeled "foobar" 
     setListAdapter(list_elems); 

     ListView lv = getListView(); 

     lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

     lv.setItemChecked(0, true); 
    } 
関連する問題

 関連する問題