とリストアイテムの行としてを作成してListView
います。TextView
ImageView
最初に、リストビュービューでローカルデータベースからデフォルトのアイテムupdate button
をロードしています。サーバーからさらにアイテムをロードするために、リストビューの上部にがあります。
update button
ユーザーがiを押すと、サーバーからアイコンのURLとテキストAsyncTask
をプルするaが起動します。
ImageViewにアイコンをロードするには、ImageDownloaderのサンプルを使用していますが、問題は、ImageViewがViewHolderパターンの古いImageViewsbcozとオーバーラップしていることです。だから誰かが私が間違っていることを私に吐き出すことができますか?
これが私のListViewアダプタコードです
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
TemplateData data = (TemplateData) this.getItem( position );
if(convertView == null){
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.text_template_default_row, parent, false);
holder = new ViewHolder();
holder.templateText = (TextView) convertView.findViewById(R.id.defText);
holder.templateIcon = (ImageView)convertView.findViewById(R.id.defIcon);
holder.templateTitle = (TextView) convertView.findViewById(R.id.defTitle);
convertView.setTag(holder);
}else{
holder = (ViewHolder)convertView.getTag();
}
holder.templateText.setText(data.getText() );
holder.templateTitle.setText(data.getTemplateTitle());
//isImageLoading initially sets to false so that default items will use the
// resource ids , it gets falsed when AsyncTask finished load Images and update the
//adapter and at that time this adapter has to pic the image from ImageDowloader
if(!isImageLoading)
data.setTemplateIconId(iconList[position]);
//Has resource id but not icon url
if(data.getTemplateIconId()!=0 && data.getTemplateIconUrl()==null ){
Log.d("Load icon ","Default Load");
holder.templateIcon.setBackgroundResource(data.getTemplateIconId());
// does not has recource id so load url from server
}else if(data.getTemplateIconUrl()!=null && data.getTemplateIconId()==0){
Log.d("Load icon ","From Server Load");
imageDownloader.download(data.getTemplateIconUrl(), (ImageView) holder.templateIcon);
}
return convertView;
}
iconListには、アプリケーション内の既存のアイコンのリソースIDが含まれています。さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。
編集
これがスクリーンショットです
最初は、Android携帯にのみ保存されているデータベースからロードされている8つのテンプレートとそのアイコンがあります。その名前はテンプレート1からテンプレート6で始まります
これで、ユーザーが更新ボタンを押すと、新しいテンプレートがここに読み込まれます。その名前はtemplatenew1からtemplatenew9で始まりますが、上下にスクロールするとimageViewsがオーバーラップします
これがスクリーンショットです