2010-08-16 52 views
1

我有一個視圖,其中有一個onClickListener,當用戶點擊某個位置時,我想查詢數據庫,然後從中提取數據。問題是我似乎無法在視圖類中執行此操作,因爲它不是一個Activity。從視圖進行SQLite查詢

我已經嘗試在活動中的佈局上實現OnTouchListener,但它似乎視圖的佈局覆蓋任何嘗試從那裏進行觸摸註冊。

所以,我嘗試了一些方法,他們失敗了。我想知道你們有沒有想法?我將如何實現它,以便當用戶觸摸屏幕時,我可以檢索X Y值,然後查詢數據庫?

回答

1

使用getContext()方法查看。然後您可以從上下文獲取數據庫實例。 有點像這樣:

class TestView extends View{ 

    public TestView(Context context) { 
     super(context); 
     SQLiteDatabase db = getContext().openOrCreateDatabase(...); 
    } 

} 
+0

我得到'鳴叫不能得到解決或不爲以下一個field' ..'SQLiteDatabase DB =的getContext()tweets.getWritableDatabase();'爲什麼?我把它聲明爲一個類變量。 – Skizit 2010-08-16 14:40:03

+0

這是因爲getContext()會返回您的上下文引用,而不是您聲明該字段的類型的引用。您可以嘗試將返回的引用強制轉換爲您的類型,即SQLiteDatabase db =((YourType)getContext())。tweets.getWritableDatabase(); – 2010-08-16 15:06:59

+0

對不起,但您的「您的類型」是什麼意思? – Skizit 2010-08-16 15:11:05