2012-03-22 27 views
0

私のアプリでは、ListViewにはテキストとチェックボックスが含まれています。チェックボックスを使っていくつかのテキストビューを選択したとします。次にこのリストを開くと、以前に選択したアイテムが表示されます。リストビューのテキストに基づいて選択した項目をチェックすることができます。それは最初にあなたがt1、t2を選択されたことを意味し、次にt1、t2に基づいてリストが開きます。これらのテキストをチェックします。もしそうなら、それを行う方法。それ以外の方法は、これを実装するより良い方法を提案します。リストビューで選択した項目を確認する方法

リスト

enter image description here

+0

[http://stackoverflow.com/questions/8320663/android-how-to-redraw-list-when-the-user-sets-、それはあなたを助けるかもしれない、この答えを参照してください。チェックボックス] [1] [1]:http://stackoverflow.com/questions/8320663/android-how-to-redraw-list-when-the-user-sets-checkbox – Hasmukh

答えて

0

保存された嗜好にチェックボックスのインデックスを選択しonCreate()又はonResume()スタブ方法にチェックボックスをチェック。

+0

はどのように保存します好みで? – naresh

+0

http://www.anddev.org/novice-tutorials-f8/how-to-save-data-using-shared-preference-t48796.html – MrWaqasAhmed

0

は、あなたがそれを格納するために選択されたすべての行の選択とselectedArray

このコードという名前の配列の店を持っていると仮定します。

int count = selectedArray.lenght; 

SharedPreferences prefs = getSharedPreferences("your_custom_name", Activity.MODE_PRIVATE);    prefs.edit().putInt("selected_count", count).commit(); 

for (int i = 0; i<count; i++){ 
    prefs.edit().putInt("selected_at_" + i, selectedArray[i]).commit(); 
} 

これは取得用です。

SharedPreferences prefs = getSharedPreferences("your_custom_name", Activity.MODE_PRIVATE); 
int count = prefs.edit().getInt("selected_count", 0).commit(); 
for (int i = 0; i<count; i++){ 
    prefs.edit().getInt("selected_at_" + i, -1).commit(); 
} 

このヘルプが必要です。

0

ステップ1:カスタム列の代わりTextViewCheckedTextViewCheckBox

custom_row.xmlを使用して

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/chkTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:textColor="#000000" 
    android:textSize="14sp" 
    android:textStyle="bold" /> 

ステップ2:あなたの活動で

public void onItemClick(AdapterView<?> arg0, View view, int postion, long id) { 
    hold the selected item position in a array list (depends upon the item is checked or unchecked.) 

} 

ステップ3: 「実行」ボタンをクリックすると、選択された位置がいずれかの記憶方法(最も望ましいオブジェクトキャッシュ)で保持されます。

ステップ4: 活動を作成中:
        ステップ4.1:永続IDを取得します:ライン

以下
listvw = (ListView)findViewById(android.R.id.list); 
listvw.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

        ステップ4.2を追加します。 非常に最初の呼び出しであれば、永続化されたv alueはnullまたはリストサイズ0です。

long[] checkedItemIds = retriveFromPersistence(); 
if (checkedItemIds != null) { 
for(int id_count = 0; id_count < checkedItemIds.length; id_count++) { 
     listvw.setItemChecked((int) checkedItemIds[id_count], true); 
    } 
}