0
我使用「lv_del_transl.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)」來設置此選項。AlertDialog中的多重選擇
代碼來創建AlertDialog:
Al_tr.setTitle("Title");
RelativeLayout view_T = (RelativeLayout)getLayoutInflater().inflate(R.layout.listofword_cmenu_del_transl, null);
Al_tr.setView(view_T);
TextView del_transl = (TextView)view_T.findViewById(R.id.del_transl);
ListView lv_del_transl = (ListView)view_T.findViewById(R.id.lv_del_transl);
Button del_transl_OK = (Button)view_T.findViewById(R.id.del_transl_OK);
Button del_transl_Cancel = (Button)view_T.findViewById(R.id.del_transl_Cancel);
al_del_tr=Al_tr.create();
Del_transl.setText("word");
Cursor c_adap_tr=cur_del_tr(......);
startManagingCursor(c_adap_tr);
String[] from_r = new String[]{NAME};
int[] to_r = new int[] {R.id.transl };
scAdapter_transl = new SimpleCursorAdapter(this, R.layout.listofword_cmenu_del_transl_item, c_adap_tr, from_r, to_r);
lv_del_transl.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); // for set Multiple property
lv_del_transl.setAdapter(scAdapter_transl);
del_transl_OK.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String sel="0";
SparseBooleanArray sbArray = lv_del_transl.getCheckedItemPositions();
for (int i = 0; i < lv_del_transl.getCount(); i++) {
if (sbArray.get(i))
sel+=Integer.toString(lv_del_transl.getCheckedItemPosition())+" ";
}
Toast.makeText(getApplicationContext(), Integer.toString(lv_del_transl.getCount())+" "+sel, Toast.LENGTH_SHORT).show();
}
});
al_del_rt.show();
XML文件,ListView控件
<LinearLayout
android:id="@+id/lv_del_translation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:id="@+id/del_translation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/text_del_translation"
android:textSize="20dp" />
<TextView
android:id="@+id/del_transl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="28dp"
android:text="@string/text_del_transl"
android:textSize="20dp" />
</LinearLayout>
<ListView
android:id="@+id/lv_del_transl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/lv_del_translation"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:choiceMode="multipleChoice" />
<LinearLayout
android:id="@+id/l_del_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="@drawable/gradient_box"
android:orientation="horizontal"
android:padding="5dp" >
<Button
android:id="@+id/del_transl_OK"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/text_del_word_OK" />
<Button
android:id="@+id/del_transl_Cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/text_del_word_Cancel" />
</LinearLayout>
</RelativeLayout>
其中listofword_cmenu_del_transl_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/transl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_centerVertical="true"
android:textSize="19sp">
</TextView>
<CheckBox
android:id="@+id/checbox_id"
android:layout_marginRight="10dp"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
但SparseBooleanArray sbArray沒有效果。我無法定義檢查位置。請幫我找一個錯誤。
你可能已經刪除了老問題,但我還是認識到這是一個重複的,仍然不要」沒有足夠的信息來知道錯在哪裏...... sbArray'爲null,爲空?由於您已經刪除了所有方法引用,因此我無法確定變量是在哪裏聲明的... – Sam
光標正常工作。但是sbArray是空的。我猜「SparseBooleanArray sbArray = lv_del_transl.getCheckedItemPositions()」不起作用。而且我無法在ListView中定義選中的位置。 – ftor