简体   繁体   中英

Trying to show a ListView in a Fragment

I'm trying to show a ListView, with my custom adapter in a Fragment, but it doesn't appear. I use the same code that I used in a normal activity and it worked but in this fragment no...

the code gives no error, but nothing appears.

在此处输入图片说明

public class Amics extends Fragment {
    ListView listView_Amics;
    ArrayAdapter<Usuari> adapter;
    List<Usuari> list = new ArrayList<Usuari>();


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        View rootView = inflater.inflate(R.layout.amics, container, false);


        listView_Amics = (ListView) rootView.findViewById(R.id.listView_amics);
            adapter = new MyAdapter_Amics(getActivity(),list);
            listView_Amics.setAdapter(adapter);

    obtenir_amics1();  // THIS FUNCTION ADD ELEMENTS TO THE LIST AND SETS ADAPTER

        return rootView;
    }

    public boolean obtenir_amics1(){
    String data = null; // THE STRING TO SAVE HTTPOST RESPONSE

        // HTTP POST DATA RECIEVING..
        List<NameValuePair> parametres = new ArrayList<NameValuePair>();
        parametres.add(new BasicNameValuePair("id", id));
        try {
            DefaultHttpClient client = new DefaultHttpClient();
            HttpPost request = new HttpPost("MY_HOST");
            request.setEntity(new UrlEncodedFormEntity(parametres));
            HttpResponse response = client.execute(request);
            HttpEntity entity = response.getEntity();
            data = EntityUtils.toString(entity);
            Log.e("DADES OBTINGUDES", data);

            try {

                JSONArray json = new JSONArray(data);
                int limit = 50;
                if(json.length()<limit){limit=json.length();}
                for (int i = 0; i < limit; i++) {
                    JSONObject obj = json.getJSONObject(i);
                    String nombre = obj.getString("usuario_two");
                    boolean selected = false;
                    Log.e("amic:", nombre);

                list.add(new Usuari(nombre,selected));


                listView_Amics.setAdapter(adapter);

                }
                return true;
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        } catch (ClientProtocolException e) {
            Log.d("HTTPCLIENT", e.getLocalizedMessage());
        } catch (IOException e) {
            Log.d("HTTPCLIENT", e.getLocalizedMessage());
        }
        return false;
    }

Override the onResume() method and shift adapter = new MyAdapter_Amics(getActivity(),list); listView_Amics.setAdapter(adapter); obtenir_amics1(); adapter = new MyAdapter_Amics(getActivity(),list); listView_Amics.setAdapter(adapter); obtenir_amics1(); to onResume() .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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