java - 将对象从异步线程传递到 fragment 类

标签 java android

public SimpleAsyncTask(JSONObject obj, Activity activity) {
    this.obj = obj;
    this.activity = activity;
}

@Override
protected String doInBackground(String...params) {    
    String result = "";    
    return result;
}

@Override
protected void onPostExecute(String result) {
    List<Appointments> lists = new ArrayList<Appointments>();
    return lists;
}

@Override
protected void onPreExecute() {

}

我从 MainUI 线程调用我的 AsyncTask 线程。我有一个带有 listView 的 fragment 类,我如何将 List 传递给我的 Fragment 类。

ArrayAdapter < String > adapter = new ArrayAdapter < String > (getActivity(),
        android.R.layout.simple_list_item_1, listObject);
setListAdapter(adapter);

最佳答案

只需将列表变量设置为 Fragment 类的成员,而不是限制在 AsyncTask 内

像这样:

public class MyFragment extends Fragment {

    private List<Appointments> lists = new ArrayList<Appointments>();
    ......

然后在您的 AsyncTask 中,按如下方式使用它:

    @Override
    protected void onPostExecute(String result) {
        // Not instantiating it from scratch, but using the class variable
        lists = new ArrayList<Appointments>();
        return lists;
     }

关于java - 将对象从异步线程传递到 fragment 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15729528/

相关文章:

按下后退按钮时 Android 崩溃

Android检测是否在高速公路上

android - Android 上的多个游戏 Controller

android - 标题栏下方的黑色空间使用 ListView 的自定义背景

java - 用单个对象的克隆填充数组

java - OpenAm 如何在回调中重定向到模板(处理方法)

java - 客户端-服务器聊天应用程序 JAVA

java - 用于单元测试的 Cassandra 2.1 设置?

java - 如何将在 fragment 中创建的 ArrayList<String> 传递给主要 Activity

android - 在用户滑动以删除应用程序之前删除文件