Mon listview
affiche le dernier élément deux fois.Pourquoi listview montrant le dernier article deux fois?
Je veux montrer les membres de la base de données avec MySQL et reprise de volée, l'envoi de la demande de Android API qui est programmé en PHP et l'API de retour
de données JSON.
Voici mon code:
String email, member_id, member_type;
ListView community_member_list;
Context context = this;
MemberAdapter memberAdapter;
List<Model> modelList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_community);
SharedPreferences SP = getSharedPreferences("MemberSession", MODE_PRIVATE);
Boolean member_logged_in = SP.getBoolean("member_logged_in", false);
email = SP.getString("email", null);
member_id = SP.getString("member_id", null);
member_type = SP.getString("member_type", null);
if (!member_logged_in)
{
Intent intent = new Intent(this, Login.class);
startActivity(intent);
finish();
}else{
community_member_list = (ListView) findViewById(R.id.community_members_list);
memberAdapter = new MemberAdapter(getApplicationContext(), R.layout.community_list_item, modelList);
community_member_list.setAdapter(memberAdapter);
get_community_members();
}
}
public void get_community_members()
{
StringRequest stringRequest = new StringRequest(Request.Method.POST, new Login().site_url+"community",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("members");
Model model = null;
for(int i=0; i<jsonArray.length(); i++) {
JSONObject finalObject = jsonArray.getJSONObject(i);
model = new Model();
model.setMember_id(finalObject.getInt("physician_id"));
model.setProfile_photo(finalObject.getString("profile_photo"));
model.setFirst_name(finalObject.getString("first_name"));
model.setLast_name(finalObject.getString("last_name"));
model.setDesignation(finalObject.getString("designation"));
model.setOrganization(finalObject.getString("organization"));
modelList.add(model);
}
memberAdapter.add(model);
memberAdapter.setNotifyOnChange(true);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context, "Error "+error, Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("member_id", member_id);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private class MemberAdapter extends ArrayAdapter {
private List<Model> memberList;
private int resource;
private LayoutInflater inflater;
MemberAdapter(Context context, int resource, List<Model> objects) {
super(context, resource, objects);
memberList = objects;
this.resource = resource;
inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
}
@NonNull
@Override
public View getView(final int position, View convertView, @NonNull ViewGroup parent) {
if(convertView == null)
{
convertView = inflater.inflate(resource, null);
}
final ImageView imageView;
TextView textView, textView2;
imageView = (ImageView)convertView.findViewById(R.id.imageView);
textView = (TextView)convertView.findViewById(R.id.textView);
textView2 = (TextView) convertView.findViewById(R.id.textView2);
com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage("http://www.plexusd.com/uploads/specialist/" + memberList.get(position).getProfile_photo(), imageView, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
imageView.setImageResource(R.mipmap.avatar);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
imageView.setImageResource(R.mipmap.avatar);
}
});
textView.setText("Dr. "+memberList.get(position).getFirst_name()+" "+memberList.get(position).getLast_name());
textView2.setText(""+memberList.get(position).getDesignation()+",\n"+memberList.get(position).getOrganization());
return convertView;
}
}
Voici la photo de la liste de mobile.
Pouvez-vous fixer la réponse du serveur ainsi? –