custom listview using cursor and it should display image as listitem
I am developing one application which uses custom listview and listview is filled by data from simple cursor adapter. Now i want to display an image as listitem and it's varying in each listitem. my code is:
dbHelper = new DatabaseHelper(this);
try {
String strDrSearchName = etSearchVisitDr.getText().toString();
Cursor c = dbHelper.getViewAllDoctorSearch(strDrSearchName);
Log.d("Search", "Search");
startManagingCursor(c);
from = new String[] {
DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName,
DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
to = new int[] {
R.id.txtDrCode,
R.id.txtDrName,
R.id.txtDrCat,
R.id.txtDrCity,
R.id.txtDrSpec };
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
R.layout.gridvisitdoctor, c, from, to);
list.setAdapter(sca);
It works fine and display results in list but how can I display image as list item which is different for all listitems.
I solved this and this is my code
package pkg.ecpTablet;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.graphics.Color;
import android.graphics.Path.FillType;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class CurrentVisitDoctor extends Activity {
Button btnToggleAP;
Button btnDrVisitback;
EditText etSearchDrVisit;
ListView listDrCurrentVisit;
TextView txtDate;
TextView txtPlanned;
TextView txtVisited;
TextView txtTotal;
DatabaseHelper dbHelper;
String strDate;
String strCTDay;
ListView list;
String[] from;
int[] to;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.currentvisitdoctor);
btnToggleAP = (Button) findViewById(R.id.btnToggleAP);
btnDrVisitback = (Button) findViewById(R.id.btnDrVisitback);
etSearchDrVisit = (EditText) findViewById(R.id.etSearchDrVisit);
listDrCurrentVisit = (ListView) findViewById(R.id.listDrCurrentVisit);
txtDate = (TextView) findViewById(R.id.txtDate);
txtPlanned = (TextView) findViewById(R.id.txtPlanned);
txtVisited = (TextView) findViewById(R.id.txtVisited);
txtTotal = (TextView) findViewById(R.id.txtTotal);
btnDrVisitback.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent iBack = new Intent(CurrentVisitDoctor.this,
VisitHome.class);
startActivity(iBack);
}
});
// LoadGridTourPlanDr();
fillDataTourPlannedDr();
Bundle b = new Bundle();
b = getIntent().getExtras();
final int flag = b.getInt("flag");
if (flag == 0) {
strDate = b.getString("ydate");
txtDate.setText(strDate);
}
if (flag == 1) {
strDate = b.getString("date");
txtDate.setText(strDate);
}
if (flag == 2) {
strDate = b.getString("Date");
txtDate.setText(strDate);
}
try {
String strVisitDate = txtDate.getText().toString().trim();
SimpleDateFormat dateFormatMessage = new SimpleDateFormat(
"dd/MM/yyyy");
Date dtVisitDate = dateFormatMessage.parse(strVisitDate);
SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");
String dtMsgDate = postFormater.format(dtVisitDate);
// Toast.makeText(this,dtMsgDate, 30).show();
int CountTourPlan = dbHelper.CountTourPlanDr(dtMsgDate);
int CountTotalVisited = dbHelper.CountTotalVisited(dtMsgDate);
int CountVisit = dbHelper.getTodayDoneVisitDr(dtMsgDate);
txtPlanned.setText("Planned(" + CountTourPlan + ")");
txtTotal.setText("Total(" + CountTotalVisited + ")");
txtVisited.setText("Visit(" + CountVisit + ")");
/*
* txtPlanned.setText(CountTourPlan); txtTotal.setText(CountVisit);
* txtVisited.setText(CountTotalVisited);
*/
} catch (Exception e) {
Alerts.ShowMessageAlert(CurrentVisitDoctor.this, "",
String.valueOf(e));
}
// Toast.makeText(CurrentVisitDoctor.this, String.valueOf(flag),
// 30).show();
btnToggleAP.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
etSearchDrVisit.setText("");
if (btnToggleAP.getText().toString().equals("P")) {
btnToggleAP.setText("A");
// LoadGridAllDr();
fillDataAllDr();
} else {
btnToggleAP.setText("P");
// LoadGridTourPlanDr();
fillDataTourPlannedDr();
}
}
});
etSearchDrVisit.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
if (btnToggleAP.getText().toString().equals("P")) {
LoadGridTourPlanDrSearch();
} else {
// LoadGridAllDrSearch();
fillDataAllDrSearch();
}
}
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
if (btnToggleAP.getText().toString().equals("P")) {
// LoadGridTourPlanDrSearch();
fillDataTourPlannedDrSearch();
} else {
// LoadGridAllDrSearch();
fillDataAllDrSearch();
}
}
public void afterTextChanged(Editable arg0) {
if (btnToggleAP.getText().toString().equals("P")) {
// LoadGridTourPlanDrSearch();
fillDataTourPlannedDrSearch();
} else {
// LoadGridAllDrSearch();
fillDataAllDrSearch();
}
}
});
listDrCurrentVisit.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// TODO Auto-generated method stub
SQLiteCursor cr = (SQLiteCursor) parent
.getItemAtPosition(position);
String DrName = cr.getString(cr
.getColumnIndex(DatabaseHelper.colvarDrName));
String DrCode = cr.getString(cr
.getColumnIndex(DatabaseHelper.colvarDrCode));
int intDrcode = Integer.parseInt(DrCode);
int drGlCode = dbHelper.GetDrID(DrName);
String DrCategory = cr.getString(cr
.getColumnIndex(DatabaseHelper.colvarCategory));
String DrCityname = cr.getString(cr
.getColumnIndexOrThrow(DatabaseHelper.colvarCityName));
String DrSpeciality = cr.getString(cr
.getColumnIndex(DatabaseHelper.colvarSpeciality));
Bundle b = new Bundle();
Intent deviatedvisits = new Intent(CurrentVisitDoctor.this,
DoctorVisit.class);
b.putInt("drGlCode", drGlCode);
b.putString("drname", DrName);
b.putString("drcode", DrCode);
b.putString("drspeciality", DrSpeciality);
b.putString("drcity", DrCityname);
b.putString("drcategory", DrCategory);
b.putInt("flag", flag);
b.putString("Date", txtDate.getText().toString());
deviatedvisits.putExtras(b);
startActivity(deviatedvisits);
}
});
}
public void LoadGridAllDr() {
dbHelper = new DatabaseHelper(this);
try {
// Cursor c=dbHelper.getTourPlan();
Cursor c = dbHelper.getViewAllDoctor();
// Cursor
// c=dbHelper.getViewAllDoctor(strDrSearchCode,strDrSearchName,strDrSearchCat,strDrSearchCity,strDrSearchSpec);
startManagingCursor(c);
// int no = Integer.valueOf((String.valueOf(cr.toString())));
// txtVisitToday.setText(String.valueOf(cr.getColumnIndex("TodayPlan")));
// txtVisitToday.setText(String.valueOf(c.getColumnCount()));
String[] from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
int[] to = new int[] { R.id.txtDrCode, R.id.txtDrName,
R.id.txtDrCat, R.id.txtDrCity, R.id.txtDrSpec };
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
R.layout.gridcurrentvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(sca);
// Toast.makeText(VisitDoctor.this,
// String.valueOf(dbHelper.getTodayPlanDrVisit()),
// Toast.LENGTH_LONG).show();
} catch (Exception ex) {
// AlertDialog.Builder b=new AlertDialog.Builder(this);
// b.setMessage(ex.toString());
// b.show();
}
}
public void LoadGridTourPlanDr() {
dbHelper = new DatabaseHelper(this);
try {
String strVisitDate = txtDate.getText().toString().trim();
// Toast.makeText(CurrentVisitDoctor.this, strVisitDate, 30).show();
SimpleDateFormat dateFormatMessage = new SimpleDateFormat(
"dd/MM/yyyy");
Date dtVisitDate = dateFormatMessage.parse(strVisitDate);
SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");
String dtMsgDate = postFormater.format(dtVisitDate);
// Cursor c=dbHelper.getTourPlan();
Cursor c = dbHelper.getViewPlanDoctor(dtMsgDate);
// Cursor
// c=dbHelper.getViewAllDoctor(strDrSearchCode,strDrSearchName,strDrSearchCat,strDrSearchCity,strDrSearchSpec);
startManagingCursor(c);
// int intTourPlanToday = dbHelper.getTodayPlanDrVisit();
// int no = Integer.valueOf((String.valueOf(cr.toString())));
// txtVisitToday.setText(String.valueOf(cr.getColumnIndex("TodayPlan")));
// txtVisitToday.setText(String.valueOf(c.getColumnCount()));
String[] from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
int[] to = new int[] { R.id.txtDrCode, R.id.txtDrName,
R.id.txtDrCat, R.id.txtDrCity, R.id.txtDrSpec };
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
R.layout.gridcurrentvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(sca);
// Toast.makeText(VisitDoctor.this,
// String.valueOf(dbHelper.getTodayPlanDrVisit()),
// Toast.LENGTH_LONG).show();
} catch (Exception ex) {
// AlertDialog.Builder b=new AlertDialog.Builder(this);
// b.setMessage(ex.toString());
// b.show();
}
}
public void LoadGridAllDrSearch() {
dbHelper = new DatabaseHelper(this);
try {
String strDrSearchName = etSearchDrVisit.getText().toString();
String strDrName = etSearchDrVisit.getText().toString();
String finaleDrNameSearch = strDrName;
Cursor c = dbHelper.getViewAllDoctorSearch(finaleDrNameSearch);
// Cursor c=dbHelper.getViewAllDoctorSearch(strDrSearchCode,
// strDrSearchName, strDrSearchCat, strDrSearchCity,
// strDrSearchSpec);
startManagingCursor(c);
// int no = Integer.valueOf((String.valueOf(cr.toString())));
// txtVisitToday.setText(String.valueOf(cr.getColumnIndex("TodayPlan")));
// txtVisitToday.setText(String.valueOf(c.getColumnCount()));
String[] from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
int[] to = new int[] { R.id.txtDrCode, R.id.txtDrName,
R.id.txtDrCat, R.id.txtDrCity, R.id.txtDrSpec };
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
R.layout.gridcurrentvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(sca);
// Toast.makeText(VisitDoctor.this,
// String.valueOf(dbHelper.getTodayPlanDrVisit()),
// Toast.LENGTH_LONG).show();
} catch (Exception ex) {
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setMessage(ex.toString());
b.show();
}
}
public void LoadGridTourPlanDrSearch() {
dbHelper = new DatabaseHelper(this);
try {
String strVisitDate = txtDate.getText().toString().trim();
SimpleDateFormat dateFormatMessage = new SimpleDateFormat(
"dd/MM/yyyy");
Date dtVisitDate = dateFormatMessage.parse(strVisitDate);
SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");
String dtMsgDate = postFormater.format(dtVisitDate);
String strDrName = etSearchDrVisit.getText().toString();
String finaleDrNameSearch = strDrName;
Cursor c = dbHelper.getViewPlanDoctorSearch(finaleDrNameSearch,
dtMsgDate);
// Cursor c=dbHelper.getViewPlanDoctorSearch(strDrSearchCode,
// strDrSearchName, strDrSearchCat, strDrSearchCity,
// strDrSearchSpec);
开发者_开发百科 startManagingCursor(c);
// int no = Integer.valueOf((String.valueOf(cr.toString())));
// txtVisitToday.setText(String.valueOf(cr.getColumnIndex("TodayPlan")));
// txtVisitToday.setText(String.valueOf(c.getColumnCount()));
String[] from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
int[] to = new int[] { R.id.txtDrCode, R.id.txtDrName,
R.id.txtDrCat, R.id.txtDrCity, R.id.txtDrSpec };
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
R.layout.gridcurrentvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(sca);
// Toast.makeText(VisitDoctor.this,
// String.valueOf(dbHelper.getTodayPlanDrVisit()),
// Toast.LENGTH_LONG).show();
} catch (Exception ex) {
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setMessage(ex.toString());
b.show();
}
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
btnToggleAP = (Button) findViewById(R.id.btnToggleAP);
btnDrVisitback = (Button) findViewById(R.id.btnDrVisitback);
etSearchDrVisit = (EditText) findViewById(R.id.etSearchDrVisit);
listDrCurrentVisit = (ListView) findViewById(R.id.listDrCurrentVisit);
txtDate = (TextView) findViewById(R.id.txtDate);
// LoadGridTourPlanDr();
fillDataTourPlannedDr();
Bundle b = new Bundle();
b = getIntent().getExtras();
final int flag = b.getInt("flag");
if (flag == 0) {
strDate = b.getString("ydate");
txtDate.setText(strDate);
}
if (flag == 1) {
strDate = b.getString("date");
txtDate.setText(strDate);
}
if (flag == 2) {
strDate = b.getString("Date");
txtDate.setText(strDate);
}
}
protected void fillDataAllDr() {
dbHelper = new DatabaseHelper(this);
Cursor c = dbHelper.getViewAllDoctor();
startManagingCursor(c);
from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName, DatabaseHelper.colvarSpeciality };
to = new int[] { R.id.txtDrCode, R.id.txtDrName, R.id.txtDrCat,
R.id.txtDrCity, R.id.txtDrSpec };
// SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
// R.layout.gridvisitdoctor, c, from, to);
customCursorAdapter cca = new customCursorAdapter(this,
R.layout.gridvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(cca);
}
protected void fillDataTourPlannedDr() {
dbHelper = new DatabaseHelper(this);
try {
// Cursor c = dbHelper.getViewAllDoctor();
// startManagingCursor(c);
String strVisitDate = txtDate.getText().toString().trim();
// Toast.makeText(CurrentVisitDoctor.this, strVisitDate, 30).show();
SimpleDateFormat dateFormatMessage = new SimpleDateFormat(
"dd/MM/yyyy");
Date dtVisitDate = dateFormatMessage.parse(strVisitDate);
SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");
String dtMsgDate = postFormater.format(dtVisitDate);
// Cursor c=dbHelper.getTourPlan();
Cursor c = dbHelper.getViewPlanDoctor(dtMsgDate);
// Cursor
// c=dbHelper.getViewAllDoctor(strDrSearchCode,strDrSearchName,strDrSearchCat,strDrSearchCity,strDrSearchSpec);
startManagingCursor(c);
// int intTourPlanToday = dbHelper.getTodayPlanDrVisit();
from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
to = new int[] { R.id.txtDrCode, R.id.txtDrName, R.id.txtDrCat,
R.id.txtDrCity, R.id.txtDrSpec };
// SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
// R.layout.gridvisitdoctor, c, from, to);
customCursorAdapter cca = new customCursorAdapter(this,
R.layout.gridvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(cca);
} catch (Exception ex) {
// AlertDialog.Builder b=new AlertDialog.Builder(this);
// b.setMessage(ex.toString());
// b.show();
}
}
protected void fillDataAllDrSearch() {
dbHelper = new DatabaseHelper(this);
try {
String strDrSearchName = etSearchDrVisit.getText().toString();
String strDrName = etSearchDrVisit.getText().toString();
String finaleDrNameSearch = strDrName;
Cursor c = dbHelper.getViewAllDoctorSearch(finaleDrNameSearch);
// Cursor c=dbHelper.getViewAllDoctorSearch(strDrSearchCode,
// strDrSearchName, strDrSearchCat, strDrSearchCity,
// strDrSearchSpec);
startManagingCursor(c);
// Cursor c = dbHelper.getViewAllDoctor();
// startManagingCursor(c);
from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
to = new int[] { R.id.txtDrCode, R.id.txtDrName, R.id.txtDrCat,
R.id.txtDrCity, R.id.txtDrSpec };
// SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
// R.layout.gridvisitdoctor, c, from, to);
customCursorAdapter cca = new customCursorAdapter(this,
R.layout.gridcurrentvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(cca);
} catch (Exception ex) {
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setMessage(ex.toString());
b.show();
}
}
protected void fillDataTourPlannedDrSearch() {
dbHelper = new DatabaseHelper(this);
try {
String strVisitDate = txtDate.getText().toString().trim();
SimpleDateFormat dateFormatMessage = new SimpleDateFormat(
"dd/MM/yyyy");
Date dtVisitDate = dateFormatMessage.parse(strVisitDate);
SimpleDateFormat postFormater = new SimpleDateFormat("yyyy-MM-dd");
String dtMsgDate = postFormater.format(dtVisitDate);
String strDrName = etSearchDrVisit.getText().toString();
String finaleDrNameSearch = strDrName;
Cursor c = dbHelper.getViewPlanDoctorSearch(finaleDrNameSearch,
dtMsgDate);
// Cursor c=dbHelper.getViewPlanDoctorSearch(strDrSearchCode,
// strDrSearchName, strDrSearchCat, strDrSearchCity,
// strDrSearchSpec);
startManagingCursor(c);
// int intTourPlanToday = dbHelper.getTodayPlanDrVisit();
from = new String[] { DatabaseHelper.colvarDrCode,
DatabaseHelper.colvarDrName, DatabaseHelper.colvarCategory,
DatabaseHelper.colvarCityName,
DatabaseHelper.colvarSpeciality };
to = new int[] { R.id.txtDrCode, R.id.txtDrName, R.id.txtDrCat,
R.id.txtDrCity, R.id.txtDrSpec };
// SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
// R.layout.gridvisitdoctor, c, from, to);
customCursorAdapter cca = new customCursorAdapter(this,
R.layout.gridcurrentvisitdoctor, c, from, to);
listDrCurrentVisit.setAdapter(cca);
} catch (Exception ex) {
// AlertDialog.Builder b=new AlertDialog.Builder(this);
// b.setMessage(ex.toString());
// b.show();
}
}
} // class complete
// ListView Adapter Class
class customCursorAdapter extends SimpleCursorAdapter {
private int layout;
Context context;
public customCursorAdapter(Context context, int layout, Cursor cursor,
String[] from, int[] to) {
super(context, layout, cursor, from, to);
this.layout = layout;
this.context = context;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder;
int flag = 1;
if (view != null) {
holder = new ViewHolder();
holder.txtViewDrname = (TextView) view.findViewById(R.id.txtDrName);
holder.txtViewDrCode = (TextView) view.findViewById(R.id.txtDrCode);
holder.txtViewDrSpec = (TextView) view.findViewById(R.id.txtDrSpec);
holder.txtViewDrCity = (TextView) view.findViewById(R.id.txtDrCity);
holder.txtViewDrCat = (TextView) view.findViewById(R.id.txtDrCat);
holder.imgbullet = (ImageView) view.findViewById(R.id.imgVisited);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
String DrName = cursor.getString(cursor
.getColumnIndex(DatabaseHelper.colvarDrName));
// String name = cursor.;
if (holder.txtViewDrname != null) {
holder.txtViewDrname.setText(DrName);
holder.txtViewDrname.setTextColor(Color.RED);
}
String DrCode = cursor.getString(cursor
.getColumnIndex(DatabaseHelper.colvarDrCode));
holder.txtViewDrCode.setText(DrCode);
String DrSpeciality = cursor.getString(cursor
.getColumnIndex(DatabaseHelper.colvarSpeciality));
holder.txtViewDrSpec.setText(DrSpeciality);
String DrCityName = cursor.getString(cursor
.getColumnIndex(DatabaseHelper.colvarCityName));
holder.txtViewDrCity.setText(DrCityName);
String DrCategory = cursor.getString(cursor
.getColumnIndex(DatabaseHelper.colvarCategory));
holder.txtViewDrCat.setText(DrCategory);
if (DrName.equals("A. B. Mehta")) {
holder.imgbullet.setBackgroundResource(R.drawable.yellow_bulet);
}
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
final View view = inflater.inflate(layout, parent, false);
return view;
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public Object getItem(int position) {
return position;
}
}
class ViewHolder {
TextView txtViewDrname;
TextView txtViewDrCode;
TextView txtViewDrCity;
TextView txtViewDrSpec;
TextView txtViewDrCat;
ImageView imgbullet;
}
精彩评论