将SQLite数据库值添加到ListView

时间:2015-04-10 15:06:48

标签: java android sqlite

如果记录存在,我想将SQLite数据库值添加到ListView,但我只是从EditText获取文本。

这就是我正在做的事情

databaseHelper Class中的代码

public String ifExistIn(String stationName) {

    String query = "SELECT stationName FROM review WHERE stationId='" + stationName + "' LIMIT 1";
    try {
        SQLiteDatabase database = getReadableDatabase();
        Cursor c = database.rawQuery(query, null));
        return stationName;
    }
}

活动类的代码

public View.OnClickListener searchStation = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());
        String searchString= searchText.getText().toString();
        dbHelper.ifExistIn(searchString);

        list.add(searchString);
        arrayAdapter= new ArrayAdapter<String>(SearchAndReview.this, android.R.layout.simple_list_item_1, list);

        listView.setAdapter(arrayAdapter);
    }
};

2 个答案:

答案 0 :(得分:0)

像这样改变你的方法:

public String ifExistIn(String stationName){

        String query = "SELECT stationName FROM review WHERE stationId='" + stationName + "' LIMIT 1";
        try{
            SQLiteDatabase database = getReadableDatabase();

            Cursor c = database.rawQuery(query, null))
            return c.getString(c.getColumnIndex("columnName"));
        }


    }

您需要从光标对象中提取数据。现在你返回的是你传递的相同值。

答案 1 :(得分:0)

这里可能有一些错误,但从我所看到的你可以尝试这个:

public String ifExistIn(String stationName) {

    String query = "SELECT stationName FROM review WHERE stationId='" + stationName + "' LIMIT 1";
    SQLiteDatabase database = getReadableDatabase();
    Cursor c = database.rawQuery(query, null);
    c.moveToFirst();
    return c.getString(c.getColumnIndex("stationName"));
}

您必须获取Cursor的结果并解释它然后将其返回为AS String stationName

而且:

public View.OnClickListener searchStation = new View.OnClickListener() {
@Override
public void onClick(View v) {
    DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());
    String searchString= searchText.getText().toString();

    String usethis = dbHelper.ifExistIn(searchString);

    list.add(usethis);
    arrayAdapter= new ArrayAdapter<String>(SearchAndReview.this, android.R.layout.simple_list_item_1, list);

    listView.setAdapter(arrayAdapter);
}
};

您正在获取searchString并将其放入列表中,而不会对查询结果执行任何操作。您需要在某处分配查询结果然后使用它。或者实际上只是直接在插入中使用它,如:

list.add(dbHelper.ifExistsIn(searchString);