无法在变量中设置列表行状态



我对安卓很陌生。我我的应用程序我从mysql数据库中检索数据到列表视图。在我的数据库表中有一个状态列,我也检索该值,但我无法保存到变量中。我保存状态的概念是,如果状态值=0,则绿色图像显示该行的一侧。当状态值更改时,颜色将更改。

数据检索类

private class bookingList extends AsyncTask<String, String, Void> {
InputStream is = null;
String result = "";
@Override
protected void onPreExecute() {
findViewById(R.id.clientloadingPanel).setVisibility(View.VISIBLE);
}

@Override
protected Void doInBackground(String... params) {
String url_select = "http://www.mybusket.com/webapi/carrental/booking/get_client_bookings.php?vclientid="+Clientid; //this clientid comes from global variable class
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url_select);
ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();
try {
httpGet.setURI(new URI(url_select));
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
// read content
is = httpEntity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line + "n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
// TODO: handle exception
Log.e("log_tag", "Error converting result " + e.toString());
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
try {
lv5 = (ListView)findViewById(R.id.lv5);
lv5.setAdapter(customClientBookingList);
JSONObject object = new JSONObject(result);
JSONArray jsonArray = object.getJSONArray("booking");
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject obj = jsonArray.getJSONObject(i);
Log.d("data",""+obj);
ClientBookingData clientBookingData = new ClientBookingData();
clientBookingData.setBdate(obj.getString("bdate"));
clientBookingData.setBrand(obj.getString("brand"));
clientBookingData.setCarno(obj.getString("carno"));
clientBookingData.setBfees(obj.getString("bfees"));
clientBookingData.setAdvance(obj.getString("advance"));
clientBookingData.setDue(obj.getString("due"));
clientBookingData.setBookingid(obj.getInt("bookingid"));
clientBookingData.setStatus(obj.getInt("status"));
clientBookingLists.add(clientBookingData);
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}

findViewById(R.id.clientloadingPanel).setVisibility(View.GONE);
}
}

数据集类

private int bookingid,status;
private String bdate,carno,brand,bfees,advance,due;
public ClientBookingData(){}
public int getBookingid() {
return bookingid;
}
public void setBookingid(int bookingid) {
this.bookingid = bookingid;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getBdate() {
return bdate;
}
public void setBdate(String bdate) {
this.bdate = bdate;
}
public String getCarno() {
return carno;
}
public void setCarno(String carno) {
this.carno = carno;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getBfees() {
return bfees;
}
public void setBfees(String bfees) {
this.bfees = bfees;
}
public String getAdvance() {
return advance;
}
public void setAdvance(String advance) {
this.advance = advance;
}
public String getDue() {
return due;
}
public void setDue(String due) {
this.due = due;
}
public ClientBookingData(int bookingid, int status, String bdate, String carno, String brand, String bfees, String advance, String due) {
this.bookingid = bookingid;
this.status = status;
this.bdate = bdate;
this.carno = carno;
this.brand = brand;
this.bfees = bfees;
this.advance = advance;
this.due = due;
}

适配器类

private Activity activity;
private LayoutInflater inflater;
private List<ClientBookingData> Items;
public CustomClientBookingList(){}
public CustomClientBookingList(Activity activity, List<ClientBookingData> Items) {
this.activity = activity;
this.Items = Items;
}

@Override
public int getCount() {
return Items.size();
}
@Override
public Object getItem(int location) {
return Items.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.activity_custom_client_booking_list, null,true);
TextView bdate = (TextView)convertView.findViewById(R.id.bdate);
TextView brand = (TextView)convertView.findViewById(R.id.brand);
TextView carno = (TextView)convertView.findViewById(R.id.carno);
TextView advance = (TextView)convertView.findViewById(R.id.advance);
TextView due = (TextView)convertView.findViewById(R.id.due);
TextView bfees = (TextView)convertView.findViewById(R.id.bfees);
// getting data for the row
ClientBookingData m = Items.get(position);
// set data
bdate.setText(m.getBdate());
brand.setText(m.getBrand());
carno.setText(m.getCarno());
advance.setText(m.getAdvance());
due.setText(m.getDue());
bfees.setText(m.getBfees());
return convertView;
}

每行的右侧都有一个不同颜色的图像视图。根据状态值颜色显示,请帮助我。

你可以简单地像下面这样做 在您的getView()

ClientBookingData m = Items.get(position);
if(m.getStatus()==0)
//Your code to set Image Background
else
//Your code to set Image Background

最新更新