2

我有一个带有两个选项卡的选项卡活动。

在这个选项卡活动中,我有编辑文本和按钮来搜索本地数据库。

我有一个 listactivity 类作为 tabcontent。它由框架布局显示。

我想根据tabactivity中edittext中输入的文本刷新该listactivity。

怎么做?

我在 listactivity 中创建了一个方法:

public void search(String temp) {
String val=temp;
try{
c=BruTube_Videos.this.getContentResolver().query(Constants.CONTENT_URI, null, Constants.TITLE+" like '%"+val+"%'", null, "DATETIME("+Constants.PUBLISHED+") DESC");
}catch(Exception e){
Log.v(TAG, "exp in cursor");
}
show(c);
}

在 tabactivity 中调用这个方法,如下所示:

EditText et1=(EditText) findViewById(R.id.EditText01);
String temp=et1.getText().toString();
BruTube_Videos vdo_obj=new BruTube_Videos();
vdo_obj.search(temp);

它在 logcat 中显示异常:

02-12 16:58:26.623:VERBOSE/BruTube_Videos(227):brutube 搜索中的异常:java.lang.IllegalStateException:系统服务在 onCreate() 之前对活动不可用

我该如何管理它?

谢谢。

4

1 回答 1

1
BruTube_Videos vdo_obj=new BruTube_Videos();

永远不要在Activity. 你永远不会创建活动——你告诉 Android 启动它们。那是你错误的根源。

我强烈建议您完全摆脱这些活动,只TabActivity保留Views一个 - 一个是您的编辑表单的布局,一个是您的ListView. 然后,您不会对代码的去向感到困惑,因为只有一个活动。从编程、内存、CPU 和电池利用率的角度来看,这也更有效。

于 2010-02-14T12:36:13.583 回答