在我的應用程序,我有一個listAdapter時正在改變,其中IAM裝載PHONENUMBERS和從電話簿中的圖像,使用如下安卓:列表視圖不工作,圖片scrollling列表
public ProfileAdapter(Activity activity, int textViewResourceId, List<Profile> listCont,int renderer, String profileType) {
super(activity, textViewResourceId, listCont);
this.renderer = renderer;
this.listCont = listCont;
this.activity = activity;
this.profileType=profileType;
}
public class ViewHolder {
View rowView;
public TextView textEmailId;
public TextView textContNo;
public TextView text;
public QuickContactBadge photo;
public ViewHolder(View view)
{
rowView = view;
}
public TextView getTextView()
{
if(text ==null)
text = (TextView) rowView.findViewById(R.id.name);
return text;
}
public TextView getTextView1()
{
if(textContNo ==null)
textContNo = (TextView) rowView.findViewById(R.id.contactno);
return textContNo;
}
public TextView getTextView2()
{
if(textEmailId ==null)
textEmailId = (TextView) rowView.findViewById(R.id.emailId);
return textEmailId;
}
public QuickContactBadge getQuickContactBadge()
{
if(photo ==null)
photo = (QuickContactBadge) rowView.findViewById(R.id.quickContactBadge1);
return photo;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) (getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE));
view = inflater.inflate(renderer, null);
holder = new ViewHolder(view);
holder.text = (TextView) view.findViewById(R.id.name);
holder.textContNo = (TextView) view.findViewById(R.id.contactno);
holder.textEmailId = (TextView) view.findViewById(R.id.emailId);
holder.photo = (QuickContactBadge) view.findViewById(R.id.quickContactBadge1);
view.setTag(holder);
} else {
holder =(ViewHolder) view.getTag();
}
Profile contact = listCont.get(position);
holder.text.setText(contact.getName());
QuickContactBadge photo = (QuickContactBadge) view.findViewById(R.id.quickContactBadge1);
photo.setTag(contact.getMobileNo());
new LoadImage(photo).execute(contact.getMobileNo());
contact.getName();
contact.getId();
holder.textContNo.setText(contact.getNumber());
holder.textEmailId.setText(contact.getEmail());
return view;
}
和IAM加載圖像的AsyncTask如下
class LoadImage extends AsyncTask<String, Void, Bitmap>{
private QuickContactBadge qcb;
public LoadImage(QuickContactBadge qcb) {
this.qcb= qcb;
}
@Override
protected Bitmap doInBackground(final String... params) {
activity.runOnUiThread(new Runnable() {
public void run() {
new QuickContactHelper(activity, qcb, (String) params[0]).addThumbnail();
}
});
return null;
}
@Override
protected void onPostExecute(Bitmap result) {
}
面臨的問題,而每個時刻i滾動IAM圖像被改變爲每個聯繫人滾動列表視圖中,也滾動
IAM不順暢。我不知道我在代碼中做錯了什麼。任何幫助表示讚賞。
可以詳細說明「getView放置一些空白圖像或圖像佔位符,它將是空白的」? – teekib
我用一個例子編輯了這篇文章。我從來沒有使用過'QuickContactBadge',所以我編寫代碼就好像它是用於ImageView的,你改變了必要的位。並認真研究緩存的東西 – Budius
@任何嘗試緩存的東西... iam不從服務器下載這些圖像,從設備本身仍然需要緩存?..你可以建議我一些鏈接開始..謝謝 – teekib