我的列表视图是随机排序的,当我向下或向上滚动时,项目位置随机更改我尝试了很多方法来解决这个问题但没有成功
我用谷歌搜索,发现有太多方法可以解决与扩展列表视图相关的问题,但它不适用于我的代码
请帮忙
这是列表视图代码
static class ViewHolder {
ImageView play;
ImageView download;
TextView rtitle;
TextView size;
TextView downloads;
RatingBar ratingsmall;
ImageView ratebutton;
long tonid;
TextView voters;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
//Get the current location object
JSONObject r = (JSONObject) getItem(position);
//Inflate the view
if (convertView == null) {
convertView = mInflater.inflate(R.layout.ringtone_bit, null);
holder = new ViewHolder();
ImageView play = (ImageView) convertView.findViewById(R.id.play);
ImageView download = (ImageView) convertView.findViewById(R.id.download);
ImageView ratebutton = (ImageView) convertView.findViewById(R.id.ratebutton);
TextView rtitle = (TextView) convertView.findViewById(R.id.rtitle);
TextView size = (TextView) convertView.findViewById(R.id.size);
TextView downloads = (TextView) convertView.findViewById(R.id.downloads);
TextView voters = (TextView) convertView.findViewById(R.id.voters);
TextView personname = (TextView) convertView.findViewById(R.id.personname);
TextView date = (TextView) convertView.findViewById(R.id.date);
RatingBar ratingsmall = (RatingBar) convertView.findViewById(R.id.ratingsmall);
//setdate
try {
Date date_g = new Date(r.getLong("timestamp") * 1000);
date.setText(date_g.toLocaleString());
} catch (JSONException e2) {}
//set person name
try {
String client_name = (r.getString("personname").equals("null") == true) ? "ghost" : r.getString("personname");
personname.setText(client_name);
} catch (JSONException e2) {}
//set total votars and vote avarage
try {
float z = (float) r.getInt("rate");
voters.setText(" ( " + r.getLong("voters") + " ) / " + z);
} catch (JSONException e2) {}
//set rating bar
try {
float z = (float) r.getInt("rate");
ratingsmall.setRating(z);
} catch (JSONException e2) {}
//set ringtone Name as defualt device language
try {
String name = (lang.equals("English") == true) ? r.getString("en_name") : r.getString("ar_name");
rtitle.setText(name);
} catch (JSONException e2) {}
//ringtone file size
try {
size.setText(r.getString("size"));
} catch (JSONException e2) {}
//set downloads
try {
downloads.setText(String.valueOf(r.getLong("downloads")));
} catch (JSONException e2) {}
//set ringtone ID toneid
try {
holder.tonid = r.getLong("toneid");
download.setTag(r.getLong("toneid"));
ratebutton.setTag(r.getLong("toneid"));
} catch (JSONException e1) {}
//set download stram url to play icon
try {
play.setTag(r.getString("stream_url"));
} catch (JSONException e) {}
//add play listener test Ringtone before download it
play.setOnClickListener(onClickListener);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}