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.