我有两个选项卡的tabactivity。

在本tabactivity我已经EDITTEXT和按钮来搜索本地数据库中。

我有一个listactivity类作为tabcontent。它示出了由的FrameLayout。

我想基于其在tabactivity中的EditText输入的文本以刷新listactivity。

如何做呢?

i的一个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不向活动系统的服务()

如何管理它?

感谢。

有帮助吗?

解决方案

BruTube_Videos vdo_obj=new BruTube_Videos();

不要调用上的Activity的构造函数。你永远不创建活动 - 你告诉Android的启动它们。这是你的错误的来源。

我强烈建议您摆脱活动的共有,并有一个TabActivity持有到Views - 一个是你的编辑形式,一个是你的ListView的布局。然后,你就不会感到困惑的代码去的地方,因为只有一个活动。这也是更有效的从编程,存储器,CPU,以及电池利用的角度来看。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top