2010-08-16 57 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