Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用具有多个参数的内容提供程序从sqlite检索数据_Android_Sqlite - Fatal编程技术网

Android 如何使用具有多个参数的内容提供程序从sqlite检索数据

Android 如何使用具有多个参数的内容提供程序从sqlite检索数据,android,sqlite,Android,Sqlite,我正在开发一个Android应用程序,它允许用户添加一些数据,然后对数据进行查询,例如:用户可以添加一些医生信息,如姓名、电话、城市等。。。然后,用户可以查询医生数据库,以检索特定参数(例如城市)中的医生 我有以下代码: @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

我正在开发一个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;
}
我应该在案例中添加什么?检索器a根据多个参数进行诊断,例如:id、姓名、城市。我是否应该补充一点:

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;
还有怎么称呼呢


谢谢:

请看一看这段代码,它将提供如何检索多个值的大量想法

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;
}
我正在收到所有电子邮件和密码。你可以根据需要修改此代码,就像如果你只需要一个医生数据,那么就不要循环。我在这里循环,因为我需要所有用户