将SQL数据库的值转换为字符串数组

时间:2012-03-28 08:38:40

标签: android sql arrays string

我需要在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”下收到错误,这两个错误都表示无法将其解析为变量!

请帮助!

1 个答案:

答案 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。