如何从AsyncTask类打印arraylist?

时间:2016-03-06 09:56:57

标签: android arraylist

我想打印ArrayList。我从类AsyncTask接收了值arraylist,在MainActivity中,我有值ArrayList,但是当我打印ArrayList时,我的应用程序无效。请帮帮我!

MainActivity

{
        executeLoadProduct();
        arraylistgroup = new ArrayList<String>();
        arraylistgroup=TaskLoadProductGroup.getvaluearraylist();

        String[] mStringArray = new String[arraylistgroup.size()];
        mStringArray = arraylistgroup.toArray(mStringArray);

        for (int i = 0; i < mStringArray.length; i++) {
            System.out.println("string is2" + (String) mStringArray[i]);
        }

executeLoadProduct

 private void executeLoadProduct() {
            // execute task load product
            loadProductGroup = new TaskLoadProductGroup(MainActivity.this);
            loadProductGroup.execute();
        }

的AsyncTask

public class TaskLoadProductGroup extends AsyncTask<String, Void, ArrayList<String>> {
    private ActionBarActivity actionBarActivity;
    private Context context;
    private static ArrayList<String> arrayListgroup;

    public TaskLoadProductGroup(ActionBarActivity actionBarActivity) {
        this.actionBarActivity = actionBarActivity;
        this.context = actionBarActivity.getApplicationContext();
    }

    @Override
    protected void onPreExecute() {
        ///show progress loading

        super.onPreExecute();
    }

    @Override
    protected ArrayList<String> doInBackground(String... url) {
        ArrayList<String> listProductgroup = null;
        try {
            Server server = new Server();
            ResListProduct resListProduct = server.getListProducts(context);

            //init list item for listview home product
            listProductgroup = initItemProduct(resListProduct);

        } catch (Exception e) {
        }
        return listProductgroup;
    }

    public static ArrayList<String> initItemProduct(ResListProduct rsProduct) {
        List<GroupProduct> groups = rsProduct.getGroups();
        arrayListgroup = new ArrayList<String>();

        for (GroupProduct group : groups) {
            // add header group
            String s = group.getName();
            arrayListgroup.add(s);          
        }
        getvaluearraylist();
        // getVarialty();
        return arrayListgroup;
    }

    public static ArrayList<String> getvaluearraylist()
    {
        return arrayListgroup;
    }

    @Override
    protected void onPostExecute(ArrayList<String> listProductgroup) {
        super.onPostExecute(listProductgroup);      
    }

}

1 个答案:

答案 0 :(得分:0)

我无法确定你为什么要这么复杂的代码来打印ArrayList。您可以在onPostExecute这样的方法中打印,

@Override
protected void onPostExecute(ArrayList<String> listProductgroup) {
 super.onPostExecute(listProductgroup);   

     for (String value : listProductgroup){
         Log.d("myTag", value);
        }
 }

使用loadProductGroup.execute().get()方法,但请记住这会冻结您的用户界面。