Я использую список в своем приложении для Android, в котором элементы списка (в моем случае это растровые изображения) загружаются динамически. На самом деле я создаю растровые изображения, а затем загружаю их одно за другим в список. я хочу показать все элементы списка с некоторым изображением по умолчанию и соответствующим образом обновить их при создании растрового изображения. Мой код приведен ниже,
public class BitmapDemoActivity extends Activity {
HorizontalListView listview;
Vector<Bitmap> thumbImg;
BitmapCreator creator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listviewdemo);
creator=new BitmapCreator();
thumbImg= new Vector<Bitmap>(97);
listview = (HorizontalListView)findViewById(R.id.listview);
listview.setAdapter(new BitmapAdapter());
new AsyncBitmapCreate().execute();
}
private class AsyncBitmapCreate extends AsyncTask<Void, Bitmap, Void>{
//Bitmap[] temp=new Bitmap[44];
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
for(int i=0;i<97;i++){
publishProgress(creator.generateBitmap(i+1));
}
return null;
}
@Override
protected void onProgressUpdate(Bitmap... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
new BitmapAdapter().add(values[0]);
new BitmapAdapter().notifyDataSetChanged();
}
}
class BitmapAdapter extends BaseAdapter{
public void add(Bitmap bitmap)
{
Log.w("My adapter","add");
thumbImg.add(bitmap);
}
@Override
public int getCount() {
return thumbImg.capacity();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View retval = inflater.inflate(R.layout.listitem, null);
ImageView img = (ImageView) retval.findViewById(R.id.tImage);
img.setImageBitmap(thumbImg.get(position));
return retval;
}
};
}
Здесь я использую вектор, в котором после создания каждого растрового изображения оно вставляется в этот вектор. Я использую асинхронную задачу для создания растрового изображения. После создания каждого растрового изображения я вызываю метод notifydatasetchanged() для обновления списка. Но теперь на выходе всякий раз, когда создается каждое растровое изображение, он добавляет один элемент в список с этим изображением. Но мое требование состоит в том, чтобы показать все 97 элементов в моем списке с некоторым изображением по умолчанию, и всякий раз, когда создается растровое изображение, обновляйте соответствующий элемент списка.
Может кто-нибудь мне помочь?? Заранее спасибо....