我正在开发一个Twitter应用程序的搜索组件。我一直在常规类中进行解析,并尝试以这种方式向活动添加视图,但它不起作用。在我的帖子中:
Android 2.3.3: Crash when getting a LinearLayout from (LinearLayout)findViewById(R.id.<linear_layout_id>)一个非常有用的stackoverflow用户告诉我,我最好的选择是将所有解析调用放入asynctask并将视图添加到onPostExecute()上的活动。
所以我的问题是,我可以从XML中选择一个布局,添加一个视图,并将其保存在asyctask的onPostExecute()中吗?
答案 0 :(得分:2)
是,传递视图或将包含视图的Activity传递给AsyncTask的构造函数。只需确保在doInBackground方法中不使用这些对象。
事实上,我上周做了类似的事情:
@Override
protected void onPostExecute(Article[] articles) {
ArrayAdapter<Article> arrayAdapter = new ArticleAdapter(context, articles);
listView.setAdapter(arrayAdapter);
listView.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
}
listView是一个作为构造函数参数传递的ListView,与context相同,后者是包含视图的Context(活动)。
编辑:假设你定义了AsyncTask:
有关详情,请阅读Android文档:http://developer.android.com/reference/android/os/AsyncTask.html
答案 1 :(得分:1)
在onPostExecute中使用runOnUiThread(mRunnable)方法。如果你想对ui进行任何更改,将所有更改改为runOnUiThread。