我做了什么
我有一个Gridview,它通过imageID填充在我的数据库中。现在我设置了一个onItemClickListner,我得到了imageID - >这个有效!现在我想用那个imageID搜索我的数据库,但它总是返回“null”,但这不应该是因为如果我的数据库完全填充了那些imageID。 表的结构是:RowID |来源|信息 在Info i中存储了imageID的
问题
如何更改Cursor,我可以通过INFO获取条目。 在这里你可以找到我的光标代码:
代码:
//Es wird nach der ID des smiley gesucht.
public Cursor getSmiley(String info) throws SQLException {
Cursor mCursor =
this.mDb.query(true, DATABASE_TABLE, new String[] { INFO, SOURCE,
}, INFO + "=" + info, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
我如何获得imageID-back
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(SFilterConfigActivity.this, "" + position, Toast.LENGTH_SHORT).show();
//Hier wird herrausgefunden welche ID das Bild hat und in den jeweiligen String gespeichert
source = String.valueOf(v.getId());
Log.v("IMAGEID", source);
SmileyHelper.open();
Cursor c = SmileyHelper.getSmiley(source);
startManagingCursor(c);
if (c != null){
String size = String.valueOf(c.getCount());
Log.v("WhatsInC", size);
}
if (c.moveToFirst()) {
do {
text = c.getString(c.getColumnIndex(SmileyDBAdapter.SOURCE));
Log.v("WHATINTEXT", text);
smiley = c.getString(c.getColumnIndex(SmileyDBAdapter.INFO));
Log.v("WHATINSMILEY", smiley);
} while (c.moveToNext());
SmileyHelper.close();
其他信息:
如果您需要更多代码,请告诉我 请提前帮助你! 最好的祝福 狩猎
答案 0 :(得分:2)
public Cursor getEmpByDept(String Dept)
{
SQLiteDatabase db=this.getReadableDatabase();
String [] columns=new String[]{"_id",colName,colAge,colDeptName};
Cursor c=db.query(viewEmps, columns, colDeptName+"=?",
new String[]{Dept}, null, null, null);
return c;
}
db.query具有以下参数:
1.String Table Name: The name of the table to run the query against
2.String [ ] columns: The projection of the query, i.e., the columns to retrieve
3.String WHERE clause: where clause, if none pass null
4.String [ ] selection args: The parameters of the WHERE clause
5.String Group by: A string specifying group by clause
6.String Having: A string specifying HAVING clause
7.String Order By by: A string Order By by clause
所以,在你的查询中,
this.mDb.query(DATABASE_TABLE, new String[] { INFO, SOURCE },INFO + " = '" + info + "'" , null, null, null, null, null);
或
this.mDb.query(DATABASE_TABLE,new String[] {INFO, SOURCE},INFO + " = ?",new String[]
{info},null, null, null, null);