我必須多檢查在我的Android程序無法從多檢查清除檢查
一切都很正常,但有一個問題 - 我不能取消所有標記
我的代碼:
//============ fill the array ==============
CharSequence[] items={};
boolean[] itemsChecked;
SQL = "SELECT Name FROM Goods order by Name";
items = new String [16];
z=0;
try
{
Cursor c = MyParam.db.rawQuery(SQL, null);
if (c != null)
{
if (c.moveToFirst())
{
do
{
items[z++] = String.valueOf(c.getString(c.getColumnIndex("Name"))) ;
}
while (c.moveToNext());
}
c.close();
}
}
catch (Exception e)
{
}
itemsChecked = new boolean [items.length];
//======== when i open the dialog ===========
btnGoods = (TextView)findViewById(R.id.lblGoods);
btnGoods.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
DOD="";
showDialog(1);
}
});
//================ i have this in my code - Not in used ===================
public void onListItemClick(ListView parent, View v, int position, long id) {
parent.setItemChecked(position, parent.isItemChecked(position));
}
//================== the dialog ================
@Override
protected Dialog onCreateDialog(int id, Bundle args){
switch(id){
case 1:
return new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("Pick some")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton)
{
DOD="";
for (int i=0;i<itemsChecked.length;i++)
{
if (itemsChecked[i]==true)
{
DOD+=items[i].toString() + ",";
}
}
DOD = DOD.substring(0,DOD.length()-1);
Toast.makeText(getBaseContext(),DOD, Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton)
{
//Toast.makeText(getBaseContext(),"Cancel clicked!", Toast.LENGTH_SHORT).show();
}
})
.setMultiChoiceItems(items, itemsChecked, new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which,boolean isChecked) {
//Toast.makeText(getBaseContext(),items[which] + (isChecked ? " checked!":" unchecked!"),Toast.LENGTH_SHORT).show();
}
}
)
.create();
其優秀的作品,但我不能全部取消選中。
我試試這個:
DOD="";
itemsChecked = new boolean [items.length];
for (int i=0;i<itemsChecked.length;i++)
{
itemsChecked[i]=false;
}
編輯:
我嘗試這也和我設法當我關閉dialod
如何時,這樣做是爲了控制複選框對話加載?
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton)
{
((AlertDialog) dialog).getListView().setItemChecked(2, true);
}
})
感謝
這塊你只嘗試了代碼的每一布爾設置爲false的itemsChecked陣列英寸你對物品什麼都不做。 – Alboz 2014-09-29 13:13:56
請在上面格式化代碼 – AndroidEnthusiast 2014-09-29 13:21:01
如何更新對話框並取消選中所有複選框? – GoldSoft 2014-09-29 14:28:28