【发布时间】:2011-03-05 02:57:33
【问题描述】:
如果语言的 KEY_ACT = 1 则复选框为真,我想构建从 getLang() 获取光标的复选框
这是我的 getLang()
public Cursor getLang() {
return db.query(LANGS_TABLE, new String[] {
KEY_LANG_ID,
KEY_LANG,
KEY_ACT},
null, null, null, null, null, null);
}
我有这样的数据库
ContentValues initialValues3 = new ContentValues();
initialValues3.put(KEY_LANG, "English");
initialValues3.put(KEY_ACT, "1");
db.insert(LANGS_TABLE, null, initialValues3);
initialValues3.clear();
initialValues3.put(KEY_LANG, "French");
initialValues3.put(KEY_ACT, "0");
db.insert(LANGS_TABLE, null, initialValues3);
initialValues3.clear();
initialValues3.put(KEY_LANG, "German");
initialValues3.put(KEY_ACT, "0");
db.insert(LANGS_TABLE, null, initialValues3);
initialValues3.clear();
initialValues3.put(KEY_LANG, "Italy");
initialValues3.put(KEY_ACT, "0");
db.insert(LANGS_TABLE, null, initialValues3);
initialValues3.clear();
initialValues3.put(KEY_LANG, "Spanish");
initialValues3.put(KEY_ACT, "0");
db.insert(LANGS_TABLE, null, initialValues3);
initialValues3.clear();
所以当显示复选框时,必须显示英文,因为 KEY_ACT=1
这是我的复选框代码
protected void printSelectedLanguage(){
int i = 0;
db.open();
Cursor c = db.getLang();
for(i = 0; i < _options.length-1; i++ )
{
if (c.getString(c.getColumnIndex(DBAdapter.KEY_ACT)).equals(1)){
_selections[i]=true;
}
if ( _selections[i]==true ) {
db.setLang_Act(i+1, 1);
}else if ( _selections[i]==false ){
db.setLang_Act(i+1, 0);
}
}
但它没有显示数据库中的 KEY_ACT
我该怎么办?
/// 编辑以显示更多关于我在警报对话框中的复选框
protected Dialog onCreateDialog( int id )
{
return
new AlertDialog.Builder( this )
.setTitle( "Select language" )
.setMultiChoiceItems( _options, _selections, new DialogSelectionClickHandler() )
.setPositiveButton( "OK", new DialogButtonClickHandler() )
.create();}
public class DialogSelectionClickHandler implements DialogInterface.OnMultiChoiceClickListener
{
@Override
public void onClick( DialogInterface dialog, int clicked, boolean selected )
{
Log.i( "MEooooo", _options[ clicked ] + " selected: " + selected );
}
}
public class DialogButtonClickHandler implements DialogInterface.OnClickListener
{
@Override
public void onClick( DialogInterface dialog, int clicked )
{
switch( clicked )
{
case DialogInterface.BUTTON_POSITIVE:
printSelectedLanguage();
break;
case DialogInterface.BUTTON_NEGATIVE:
printSelectedLanguage();
break;
}
}
}
【问题讨论】:
标签: android database checkbox cursor