表达式的类型必须是数组类型,但它已解析为字符串

时间:2014-11-05 09:01:57

标签: android

正在开发一个从Database获取一些数据的应用程序。但是它显示了这个错误

private void add() {


    db = (new DbHelper(this)).getReadableDatabase();
    String query = "select * from stock where product = ?";
    String list_data;
    Cursor c = db.rawQuery(query, new String[] { list_data });
    c.moveToFirst();

    final CharSequence[] items = new CharSequence[list_data.length()];

    for (int i = 0; i < list_data.length(); i++) {


        items[i] = list_data[i];//here is the error
    }

2 个答案:

答案 0 :(得分:0)

试试这个

db = (new DbHelper(this)).getReadableDatabase();
String query = "select * from stock where product = ?";
String list_data;
Cursor c = db.rawQuery(query, new String[] { list_data });
c.moveToFirst();

final CharSequence[] items = new CharSequence[list_data.length()];

for (int i = 0; i < list_data.length(); i++) {


       items[i] = list_data.charAt(i);
}

您可以使用charAt(int index)方法从String获取char

答案 1 :(得分:0)

由于是String变量,您的变量 list_data 不能像数组一样使用。当我说它不能用作数组时,我特别谈到用于引用字符串中单个字符的方括号。

  

items[i] = list_data[i];

正如Aniruddh正确指出的那样,你必须使用在String类下定义的内置charAt()方法。

  

items[i] = list_data.charAt(i);

详情请参阅定义─ https://developer.android.com/reference/java/lang/String.html#charAt%28int%29

干杯。