我的问题是遵循(我知道我所选课程的选定结构看起来很奇怪,但......)。
我在AsyncTask的PostExecute中编写了下一个代码: 我用ListView获取Activity,创建适配器并将其分配给ListView。
ResultsQueryActivity resultsActivity = new ResultsQueryActivity();
ResourceDataAdapter resourceDataAdapter = new ResourceDataAdapter(resultsActivity,MainActivity.listVideosData);
resultsActivity.setListAdapter(resourceDataAdapter);
执行此操作后,我收到消息
*02-01 07:40:56.784: E/AndroidRuntime(525): java.lang.IllegalStateException: System services not available to Activities before onCreate()*
我真的不知道如何解决它。感谢帮助!
答案 0 :(得分:1)
为什么你有两个活动,当它们似乎都需要在同一个活动上完成时?
只使用一项活动。解析完成后,使用您的数据更新ListView,然后显示ListView。最初将隐藏ListView。您的其他视图(如果有)也将被隐藏。
或使用ListActivity,并没有真正有所作为。
答案 1 :(得分:0)
我猜它会与您创建ResultsQueryActivity
的方式有关...通常您会通过Intent
启动它并将所有视频数据传递给它Bundle
。尝试使用类似的内容替换postExecute()
中的代码(假设您的视频数据是String
数组):
Intent intent = new Intent(MainActivity.this, ResultsQueryActivity.class);
intent.putExtra("videodata", MainActivity.listVideosData);
startActivity(intent);
然后在ResultsQueryActivity
课程中,您可以使用onCreate(Bundle b)
方法检索数据:
Bundle extras = getIntent().getExtras();
String[] videodata = extras.getStringArray("videodata");
答案 2 :(得分:0)
您无法实例化活动,活动由系统管理。
这两项活动的流程并不是很好。
如果MainActivity仅用于解析html,则它不应该存在。将asynctask放在AnotherActivity中并填写postExecute中的列表。
如果MainActivity必须存在,那么您不应该在任务中填充数据。尝试将数据解析为AnotherActivity,并让它自己填充数据。