私のlistview
は最後の項目を2回表示しています。リストビューに最後のアイテムが2回表示されるのはなぜですか?
私はPHPと戻り
JSONデータAPIにプログラムされているAPIにアンドロイドからのリクエストを送信し、ボレーとMySQLでデータベースからメンバーを示したいと思います。ここで
が私のコードです:
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;
}
}
ここでは、モバイルからのリストの画像です。
はあなたにも、サーバーの応答を添付することができた後、あなたがいないことで、二回のループでそれの一つのモデルを追加しましたか? –