在我的應用程序中,我將所有圖像和名稱從MySQL服務器數據庫提取到Android手機。如果仿真器屏幕是HVGA,則只顯示五個圖像和名稱。如何在不滾動Android的情況下獲取cutom listview中的所有項目名稱
在LogCat也只有五個名字越來越打印。當我滾動屏幕時,我可以在屏幕上看到多少名字,只有很多名字正在打印?相反,所有的名字必須在滾動前打印。
這是我的代碼:
public class VegdishesListview extends BaseAdapter {
String qrimage;
Bitmap bmp, resizedbitmap;
Bitmap[] bmps;
Activity activity = null;
private LayoutInflater inflater;
private ImageView[] mImages;
String[] itemimage;
TextView[] tv;
String itemname,price,desc;
String[] itemnames;
String[] prices;
String[] descs;
HashMap<String, String> map = new HashMap<String, String>();
public VegdishesListview(Context context, JSONArray imageArrayJson) {
//inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// imageLoader=new ImageLoader(activity);
inflater=LayoutInflater.from(context);
this.mImages = new ImageView[imageArrayJson.length()];
this.bmps = new Bitmap[imageArrayJson.length()];
this.itemnames = new String[imageArrayJson.length()];
this.prices=new String[imageArrayJson.length()];
this.descs=new String[imageArrayJson.length()];
try {
for (int i = 0; i < imageArrayJson.length(); i++) {
JSONObject image = imageArrayJson.getJSONObject(i);
qrimage = image.getString("itemimage");
itemname = image.getString("itemname");
price=image.getString("price");
desc=image.getString("itemdesc");
itemnames[i] = itemname;
prices[i]=price;
descs[i]=desc;
byte[] qrimageBytes = Base64.decode(qrimage.getBytes());
bmp = BitmapFactory.decodeByteArray(qrimageBytes, 0,
qrimageBytes.length);
int width = 100;
int height = 100;
resizedbitmap = Bitmap.createScaledBitmap(bmp, width, height,
true);
bmps[i] = bmp;
mImages[i] = new ImageView(context);
mImages[i].setImageBitmap(resizedbitmap);
mImages[i].setScaleType(ImageView.ScaleType.FIT_START);
// tv[i].setText(itemname);
}
System.out.println(map);
} catch (Exception e) {
// TODO: handle exception
}
}
public int getCount() {
return mImages.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
View vi=convertView;
vi = inflater.inflate(R.layout.vegdisheslistview, null);
TextView text=(TextView)vi.findViewById(R.id.vegdishestext);
ImageView image=(ImageView)vi.findViewById(R.id.vegdishesimage);
TextView text1=(TextView)vi.findViewById(R.id.vegdishesprice);
TextView text2=(TextView)vi.findViewById(R.id.vegdishesdesc);
image.setImageBitmap(bmps[position]);
text.setText(itemnames[position]);
text1.setText(prices[position]);
text2.setText(descs[position]);
System.out.println(itemnames[position]);
return vi;
}
}
在這裏我要打印所有itemNames的System.out.println(itemnames[position]);
而不是滾動。
做它,而不是印刷的你有完全相同的問題(除了標題中的小修改)像這樣一個http://stackoverflow.com/questions/10257812/how-to-get-all-itemnames-in-getview-method-in-side-base-adapter - 在灼熱之前。爲什麼? – Luksprog 2012-04-21 11:14:12