简体   繁体   English

Asyc Task return Arraylist 找回来了吗?

[英]Asyc Task return Arraylist retrieve it?

new DownloadFilesTask().execute(myPrefs.getString("IP", ""), null, null);

I returns an Arraylist from the dobackground method..how to put it into my arraylist?我从 dobackground 方法返回 Arraylist ..如何将其放入我的 arraylist 中?

Arraylist al=null;

al=new DownloadFilesTask().execute(myPrefs.getString("IP", ""), null, null);

not working.不工作。

I returns an Arraylist from the dobackground method..how to put it into my arraylist?我从 dobackground 方法返回 Arraylist ..如何将其放入我的 arraylist 中?

By assigning your local ArrayList from the doInBackground() method to your global ArrayList before returning it.通过在返回之前将doInBackground()方法中的本地ArrayList分配给全局ArrayList

Sample code:示例代码:

@Override
protected ArrayList doInBackground(...) {
     ArrayList localArrayList = new ArrayList();
     // Other stuff you might have.
     // ...
     return mYourGlobalArrayList = localArrayList;
}

Try like this in ur code在你的代码中尝试这样

//After Preexecute...


@Override
                protected ArrayList doInBackground(...) {
                     ArrayList localArrayList = new ArrayList();
                     // Other stuff you might have.
                     // ...
                     return localArrayList;
                }
                @Override
                protected void onPostExecute(Object result) {
                    // TODO Auto-generated method stub

                    if(result!= null)
                    {
                        ArrayList<String> category = new ArrayList<String>();
                        category = (ArrayList<String>) result;
                    }
                }

            }

Then You can assign this arraylist to your arraylist in post execute然后您可以在执行后将此 arraylist 分配给您的 arraylist

new AsyncTask<String, Void, ArrayList<String>>() {

            @Override
            protected ArrayList<String> doInBackground(String... params) {
                //result = do some work
                            ArrayList localArrayList = new ArrayList();
                         //   localArrayList = get from your website or from database
                          // assign arraylist globally
                return result;
            }


        }.execute("");

Return it from your doInBackground method, and bind that in onPostExecute method.从您的 doInBackground 方法中返回它,并将其绑定在 onPostExecute 方法中。

In onPostExecute method, you can get return value of doInBackground as parameter value在 onPostExecute 方法中,可以获取 doInBackground 的返回值作为参数值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM