2012-06-19 40 views
0

所以我有我的自定義ContentProvider。目前只有onCreate()方法和query()方法做任何事情,所以我只會顯示。如何在查詢時更改我的自定義ContentProvider使用的表格?


@Override 
public boolean onCreate() { 
    openHelper = new SmartCalOpenHelper(getContext()); 
    return true; 
} 

@Override 
public Cursor query(Uri uri, String[] projection, String selection, 
     String[] selectionArgs, String sortOrder) { 
    database = openHelper.getWritableDatabase(); 
    return database.query("events_info", projection, selection, selectionArgs, null, null, null); 
} 

當然,我有一個內部類,設置了所有的數據庫信息。我不明白的部分是如何動態改變表名,如上面的events_info,這取決於哪個類使用它。我現在有它調用一個表,但我需要能夠改變它,以重用它。任何想法將不勝感激!

回答

1

解析Uri並提取所需的任何信息來決定調用者要求的信息類型。有關進一步指導,請參閱the relevant documentation

+0

啊,我明白了。謝謝你的鏈接。我會閱讀它。我沒有意識到那是我做的地方。非常感謝 – Andy

+0

我有這樣做的問題。該文檔在解釋它時非常糟糕。如何正確地將我的表追加到URI中,然後在內容提供者中匹配它?我正在使用'Uri.withAppendedPath(baseUri,「events_info」)',但它表示該表不存在。我做錯了嗎? – Andy

相關問題