我正在使用Android应用程序,让用户添加一些数据,然后对数据进行查询,例如:用户可以添加一些医生信息,如(姓名,电话,城市等...)然后用户可以查询医生数据库以检索特定参数(例如城市)中的医生。
我有这段代码:
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(DOC_TABLE_NAME);
switch (uriMatcher.match(uri)) {
case DOC:
qb.setProjectionMap(DOC_PROJECTION_MAP);
break;
case DOC_ID:
qb.appendWhere( _ID + "=" + uri.getPathSegments().get(1));
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
if (sortOrder == null || sortOrder == ""){
sortOrder = _ID;
}
Cursor c = qb.query(db, projection, selection, selectionArgs,
null, null, sortOrder);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}
我应该在一个以上的参数示例中添加医生检索器的情况:id,name,city。我应该加上这个:
case DOC_ID_NAME_CITY:
qb.appendWhere( _ID + "=" + uri.getPathSegments().get(1));
qb.appendWhere( Name + "=" + uri.getPathSegments().get(2));
qb.appendWhere( City + "=" + uri.getPathSegments().get(3));
break;
还怎么称呼它?
谢谢:)
答案 0 :(得分:0)
请查看这段代码,它将提供如何检索多个值
的巨大想法public String allusers()
{
Log.d("ALLusers in db", "working");
String result="";
String []columns=new String[]{KEY_EMAIL_new,KEY_PASWORD_new};
Cursor c= ourDatabase.query(DATABASE_TABLE_New, columns, null, null, null, null, null);
int iemail=c.getColumnIndex(KEY_EMAIL_new);
int ipassword=c.getColumnIndex(KEY_PASWORD_new);
for (c.moveToFirst();!c.isAfterLast();c.moveToNext())
{
result=result+c.getString(iemail)+" "+c.getString(ipassword)+" "+ "\n";
}
return result;
}
我收到所有的电子邮件和密码。您可以根据需要修改此代码,如果您只需要一个医生数据,那么就不要使它成为循环。我在这里循环,因为我需要所有用户。