我需要在Android的eclipse中创建一个下拉列表(微调器),用户可以创建下拉选项。
为此,我创建了一个SQLiteDatabase,我想将其转换为一个字符串数组,放入一个数组适配器,然后可以将其输入到微调器中。
数据库详细信息:
DATABASE_NAME =“carddb” DATABASE_TABLE =“cardtable”
然后我希望从中读取值的列是: KEY_CARDDETAILS =“_ carddetails”;
到目前为止,这是我的代码,改编自本网站上的另一个问题(链接:how to get the database value to a String array in android(sqlite Database))
myDB = cardtable.this.openOrCreateDatabase(“carddb”,MODE_PRIVATE,null); Cursor cardcursor = cardDB.rawQuery(“SELECT * FROM cardtable”);
String[] cardstringarray = new String[cardcursor.getCount()];
cardcursor.moveToFirst();
int counter = 0;
while(cardcursor.moveToNext()){
String carddetailss = cardcursor.getString(cardcursor.getColumnIndex("NAME"));
cardstringarray[counter] = carddetailss;
counter++;
}
我在“myDB”和“cardtable”下收到错误,这两个错误都表示无法将其解析为变量!
请帮助!
答案 0 :(得分:1)
使用此代码
String[] displayName={};
ArrayList<String> List=new ArrayList<String>();
myDB = cardtable.this.openOrCreateDatabase("carddb", MODE_PRIVATE, null); Cursor cardcursor = cardDB.rawQuery("SELECT * FROM cardtable");
String[] cardstringarray = new String[cardcursor.getCount()];
cardcursor.moveToFirst();
int counter = 0;
while(cardcursor.moveToNext()){
String carddetailss = cardcursor.getString(cardcursor.getColumnIndex("NAME"));
List.add(carddetailss);
counter++;
}
if(List != null){
listEmail=(ListView)findViewById(R.id.listEmail);
listEmail.setVisibility(view.VISIBLE);
displayName=(String[])List.toArray(new String[0]);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, displayName);
// Assign adapter to ListView
listEmail.setAdapter(adapter);
}
这对你有用。使用微调器代替listView。