Autore Topic: problema nel caricare dinamicamente un arraylist in un fragment  (Letto 70 volte)

Offline clarisi

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
problema nel caricare dinamicamente un arraylist in un fragment
« il: 18 Novembre 2016, 12:05:18 CET »
0
Devo caricare un arraylist tramite jobject da visualizzare in una listview.
Alla prima apertura del fragment la la listview è vuota, se clicco su onback e riapro il fragment invece magicamente la listview viene visualizzata....dove sbaglio?

Codice (Java): [Seleziona]
    public class RischiFragment extends Fragment {
    private static final String TAG = "RischiFragment";
    private ImageView featuredImageView;
    private Toolbar toolbar;
    private NestedScrollView nestedScrollView;
    private TabLayout mTabLayout;

    private AppBarLayout appBarLayout;
    private CoordinatorLayout coordinatorLayout;
    private PostFragment.PostListener mListener;
    private ArrayList submenuItems = new ArrayList();
    private ArrayList<String> listp = new ArrayList<String>();

       //lista contenente gli item del submenu
    public static List<me.clarisi.wordpressreader.model.Menu> miosubmenu = null;


    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        PopulateSubMenuItems populatesubMenuItems = new PopulateSubMenuItems();
        populatesubMenuItems.execute();
        getActivity().getApplicationContext();

    }


  @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

   //    final ArrayList<String> listp = new ArrayList<String>();

      // PopulateSubMenuItems populatesubMenuItems = new PopulateSubMenuItems();
     //  populatesubMenuItems.execute();

       View rootView = inflater.inflate(R.layout.fragment_rischi, container, false);

      return rootView;
    }
   
    public interface PostListener {
        void onCommentSelected(int id);
        void onHomePressed();
    }


    public class PopulateSubMenuItems extends android.os.AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute(){
            super.onPreExecute();
        }

        @Override
        protected Void doInBackground(Void... params) {
            try {


                // faccio la richiesta per prendere la lista di menu items da remoto
                JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, Config.SUBMENU_URL,
                        null,
                        new Response.Listener<JSONObject>() {
                            // Request succeeded
                            @Override
                            public void onResponse(JSONObject jsonObject) {
                             //   mProgressDialog.dismiss();

                                // Get la lista di item del menu from JSON data
                                listp=new ArrayList<String>();
                                miosubmenu = JSONParser.getMenufromJson(jsonObject);
                                int j = miosubmenu.size();
                                for (int i = 0; i < j; i++) {

                                    submenuItems.add(miosubmenu.get(i).getName().toString());
                                    listp.add(miosubmenu.get(i).getName().toString());

                                    Log.d(TAG, "Vediamo se prende i Menu dentro il loader: " + miosubmenu.get(i).getName().toString());
                                    Log.e("String", listp.get(i).toString());
                                }

                            }

                        },
                        // Request failed
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError volleyError) {
                                Log.d(TAG, "----- Volley Error -----");
                             //   mProgressDialog.dismiss();
                                // Show an INDEFINITE Snackbar. New in design support lib v22.2.1.

                            }
                        });
                // Add the request to request queue
                AppController.getInstance().addToRequestQueue(request);


            } catch (Exception e) {
                Log.e("Exception", e.toString());
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void result){
            Toolbar toolbar = (Toolbar) getView().findViewById(R.id.toolbar);
            ((MainActivity) getActivity()).setSupportActionBar(toolbar);
            ((MainActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    getActivity().onBackPressed();
                }
            });
            ListView mylist = (ListView) getView().findViewById(R.id.listView1);
            // creo e istruisco l'adattatore
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, listp);

            // inietto i dati
            mylist.setAdapter(adapter);
        }

    }
    public static RischiFragment () {
     
   }
}
questo è l'xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:weightSum="6"

  >
    <android.support.v7.widget.Toolbar
       xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:app="http://schemas.android.com/apk/res-auto"
       android:id="@+id/toolbar"
       android:layout_height="wrap_content"
       android:layout_width="match_parent"
       android:fitsSystemWindows="true"
       android:background="@color/colorPrimary"
       android:textColor="@color/primopiano"
       android:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
       android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
       app:layout_scrollFlags="scroll|enterAlways"/>





    <LinearLayout
       android:orientation="vertical"
       android:layout_width="278dp"
       android:layout_height="wrap_content"
       android:background="@color/colorPrimary"
       android:weightSum="3"

       >


        <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="0dp"
       android:textSize="24sp"
       android:gravity="center"
       android:id="@+id/textView"
       android:layout_centerHorizontal="true"
       android:textColor="@android:color/holo_red_dark"
       android:text="Rischi Naturali"
       android:layout_marginLeft="30dp" />

        <ListView
           android:id="@+id/listView1"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_below="@+id/textList"
       android:layout_centerHorizontal="true"
       android:layout_marginTop="15dp"
           android:scrollbars="none"
           android:layout_marginBottom="15dp" />



    </LinearLayout>
</LinearLayout>