Android 适配器加载缓慢

Android 适配器加载缓慢,android,android-fragments,fragment,android-arrayadapter,progressdialog,Android,Android Fragments,Fragment,Android Arrayadapter,Progressdialog,嗨,我正在我的应用程序中使用适配器 updateUI()方法具有以下内容: public void updateUI() { musicAlbumAdapter = new MusicAlbumAdapter(getActivity(), R.layout.music_album_row_layout, storeAlbumDetails); music_album_listview.setAdapter(musicAlbumAdapter); music_album_li

嗨,我正在我的应用程序中使用适配器

updateUI()方法具有以下内容:

public void updateUI() {


musicAlbumAdapter = new MusicAlbumAdapter(getActivity(),
        R.layout.music_album_row_layout, storeAlbumDetails);

music_album_listview.setAdapter(musicAlbumAdapter);
music_album_listview.setSelection(savedListPosition);

/*
 * LinearLayout listFooterView = (LinearLayout)inflater.inflate(
 * R.layout.footer_layout, null);
 * 
 * list.addFooterView(listFooterView);
 */

//confirm with adapter that returning the view at very first time then cancel the dialog

if(pDialog != null && pDialog.isShowing())
pDialog.cancel();
if(pDialogLazyLoading != null && pDialogLazyLoading.isShowing())
pDialogLazyLoading.cancel();
}

但是ProgressDialog在数据加载之前关闭。这一页几秒钟内看起来是空白的。如下图所示

这里我使用了ArrayAdapter:

public class MusicAlbumAdapter extends ArrayAdapter<AlbumDetails> {

private Context context;

private ArrayList<AlbumDetails> albumDetails;

/*
 * private ArrayList<String> albumTitle; private ArrayList<String>
 * albumMusic; private ArrayList<String> albumImage;
 */

public MusicAlbumAdapter(Context context, int resource,
        ArrayList<AlbumDetails> albumDetails) {
    super(context, resource, albumDetails);
    this.context = context;
    this.albumDetails = albumDetails;

    /*
     * this.albumTitle = albumTitle; this.albumMusic = albumMusic;
     * this.albumImage = albumImage;
     */
    // TODO Auto-generated constructor stub
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.music_album_row_layout,
            parent, false);

    try {

        TextView music_album_title = (TextView) rowView
                .findViewById(R.id.music_album_row_title);

        Activity activity = (Activity) context;
        music_album_title.setTypeface(FontTypefaces.getHero(activity));
        music_album_title.setText(albumDetails.get(position)
                .getAlbumTitle());
    } catch (IndexOutOfBoundsException e) {

    }
    try {

        TextView music_album_music = (TextView) rowView
                .findViewById(R.id.music_album_row_music);
        Activity activity = (Activity) context;
        music_album_music.setTypeface(FontTypefaces.getHero(activity));
        music_album_music.setText(albumDetails.get(position)
                .getAlbumMusic());

    } catch (IndexOutOfBoundsException e) {

    }

    try {

        ImageView music_album_image = (ImageView) rowView
                .findViewById(R.id.music_album_row_image);
        Picasso.with(context)
                .load(albumDetails.get(position).getAlbumImage())
                .placeholder(R.drawable.rlogo) // optional
                .error(R.drawable.rlogo) // optional
                .into(music_album_image);

    } catch (IndexOutOfBoundsException e) {

    }

    return rowView;
}
公共类MusicAlbumAdapter扩展了ArrayAdapter{
私人语境;
私有ArrayList详细信息;
/*
*private ArrayList albumTitle;private ArrayList
*专辑音乐;私人ArrayList专辑图像;
*/
公共MusicAlbumAdapter(上下文、int资源、,
ArrayList相册(详细信息){
超级(上下文、资源、相册详细信息);
this.context=上下文;
this.albumDetails=albumDetails;
/*
*this.albumTitle=albumTitle;this.albumMusic=albumMusic;
*this.albumImage=albumImage;
*/
//TODO自动生成的构造函数存根
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
LayoutFlater充气器=(LayoutFlater)上下文
.getSystemService(上下文布局\充气机\服务);
视图行视图=充气机。充气(R.layout.music\u album\u row\u layout,
父母,假);
试一试{
TextView音乐\专辑\标题=(TextView)行视图
.findviewbyd(R.id.音乐、专辑、行、标题);
活动=(活动)上下文;
music_album_title.setTypeface(FontTypefaces.getHero(活动));
music\u album\u title.setText(albumDetails.get)(位置)
.getAlbumTitle());
}catch(IndexOutOfBoundsException e){
}
试一试{
TextView音乐\唱片集\音乐=(TextView)行视图
.findviewbyd(R.id.music\u album\u row\u music);
活动=(活动)上下文;
music_album_music.setTypeface(FontTypefaces.getHero(活动));
music\u album\u music.setText(albumDetails.get)(位置)
.getAlbumMusic());
}catch(IndexOutOfBoundsException e){
}
试一试{
ImageView音乐\相册\图像=(ImageView)行视图
.findViewById(R.id.音乐、专辑、行、图像);
毕加索。与(上下文)
.load(albumDetails.get(位置).getAlbumImage())
.placeholder(R.drawable.rlogo)//可选
.error(R.drawable.rlogo)//可选
.into(音乐、相册、图像);
}catch(IndexOutOfBoundsException e){
}
返回行视图;
}
}

您错过了runOnUiThread()@Iqbal我试过runOnUIThread()。同样的结果。