1
我想獲取使用GET方法並在列表視圖中顯示它們的用戶的列表。扼殺我正在使用的客戶列表視圖正在使用數組列表中的最後一個對象填充列表視圖。這個問題以前可能已經被問過了。但我無法得到任何適當的答覆。提前瞭解。 以下是我的主要課程摘錄。自定義列表適配器變得相同對象
String tag_string_req = "req_search";
StringRequest strReq = new StringRequest(Method.POST,
AppConfig.searchUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Search Response: " + response.toString());
hidePDialog();
// for(int i=0;i<response.length();i++) {
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
// Check for error node in json
if (!error) {
// user successfully logged in
// Create login session
// Now store the user in SQLite
Donors donor = new Donors();
// String uid = jObj.getString("uid");
JSONArray user = jObj.getJSONArray("users");
for (int i = 0; i < user.length(); i++) {
JSONObject ja = user.getJSONObject(i);
donor.setId(Integer.parseInt(ja.getString("id")));
donor.setName(ja.getString("name"));
donor.setPhone(ja.getString("phone"));
System.out.println(
"*********************************************************" + Integer
.parseInt(ja.getString("id")) + " " + ja.getString("name") + " " + ja
.getString("phone"));
donorsList.add(donor);
}
adapter.notifyDataSetChanged();
} else {
// Error in login. Get the error message
String errorMsg = jObj.getString("message");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Search Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hidePDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting parameters to login url
Map<String, String> params = new HashMap<String, String>();
System.out.println(
"*********************************************************" + distance + " " + donorLat
+ " " + donorLong + " " + bloodGroup);
params.put("distance", distance);
params.put("origin_lat", donorLat);
params.put("origin_long", donorLong);
params.put("blood_group", bloodGroup);
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
而這是列表適配器。
public class CustomListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<Donors> donorItems;
public CustomListAdapter(Activity activity, List<Donors> donorItems) {
this.activity = activity;
this.donorItems = donorItems;
}
@Override
public int getCount() {
return donorItems.size();
}
@Override
public Object getItem(int location) {
return donorItems.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = inflater.inflate(R.layout.list_row, null);
;
TextView title = (TextView) convertView.findViewById(R.id.title);
ImageButton btnText = (ImageButton) convertView.findViewById(R.id.btnText);
ImageButton btnCall = (ImageButton) convertView.findViewById(R.id.btnCall);
// getting movie data for the row
Donors d = donorItems.get(position);
System.out.println("--------------------"+d);
// title
title.setText(d.getName());
return convertView;
}
}
謝謝。