Android 如何在LazyList或Universal Image Loader中显示动态数据?

Android 如何在LazyList或Universal Image Loader中显示动态数据?,android,json,lazy-loading,universal-image-loader,Android,Json,Lazy Loading,Universal Image Loader,我正在测试我发现的(LL)和(UIL)。此外,我还成功地进行了一些修改,以检索要从JSON文档加载的URL。这是来自Flickr的。我从JSON获得了url(用于获取照片)和更多数据,如标题、描述和作者。在使用这些图像加载工具之前,我使用SimpleAdapter将数据传递到视图,如下所示: // Hashmap for ListView ArrayList<HashMap<String, String>> itemsList = new

我正在测试我发现的(LL)和(UIL)。此外,我还成功地进行了一些修改,以检索要从JSON文档加载的URL。这是来自Flickr的。我从JSON获得了url(用于获取照片)和更多数据,如标题、描述和作者。在使用这些图像加载工具之前,我使用SimpleAdapter将数据传递到视图,如下所示:

    // Hashmap for ListView        
    ArrayList<HashMap<String, String>> itemsList = new ArrayList<HashMap<String, String>>();
//ListView的Hashmap
ArrayList itemsList=新的ArrayList();
然后编写一些代码将JSON数据放入itemsList,然后

        ListAdapter adapter = new SimpleAdapter(this, itemsList,
            R.layout.item,
            new String[] { TAG_TITLE, TAG_DESCRIPTION, TAG_AUTHOR }, new int[] {
                    R.id.title, R.id.description, R.id.author });

    setListAdapter(adapter);

    // selecting single ListView item
    ListView list = getListView();


    // Launching new screen on Selecting Single ListItem
    list.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            // getting values from selected ListItem
            String title = ((TextView) view.findViewById(R.id.title)).getText().toString();
            String description = ((TextView) view.findViewById(R.id.description)).getText().toString();
            String author = ((TextView) view.findViewById(R.id.author)).getText().toString();

            // Starting new intent
            Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
            in.putExtra(TAG_TITLE, title);
            in.putExtra(TAG_DESCRIPTION, description);
            in.putExtra(TAG_AUTHOR, author);
            startActivity(in);
        }
    });
ListAdapter=new simpledapter(这个,itemsList,
R.layout.item,
新字符串[]{TAG_TITLE,TAG_DESCRIPTION,TAG_AUTHOR},新int[]{
R.id.title,R.id.description,R.id.author});
setListAdapter(适配器);
//选择单个ListView项
ListView list=getListView();
//在选择单个列表项时启动新屏幕
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//从选定的ListItem获取值
字符串title=((TextView)view.findViewById(R.id.title)).getText().toString();
字符串描述=((TextView)view.findViewById(R.id.description)).getText().toString();
字符串author=((TextView)view.findviewbyd(R.id.author)).getText().toString();
//开始新的意图
Intent in=新的Intent(getApplicationContext(),SingleMenuItemActivity.class);
in.putExtra(标签标题,标题);
in.putExtra(标签描述,描述);
in.putExtra(TAG_AUTHOR,AUTHOR);
星触觉(in);
}
});
接下来呢。现在,我试图将代码与LL或UIL合并,但无法使其工作

这些图像加载程序使用自己的适配器和GetWiew方法。因此,最后一个问题是: 如何将自己的动态数据传递给他们的适配器?


为了更清楚,我想在照片右侧显示标题、描述和作者等信息,而不是下面图片中的“项目X”:

使用自定义适配器:

public class MySimpleAdapter extends SimpleAdapter {

    private List<String> mImageUrls;

    public MySimpleAdapter(Context context, List<? extends Map<String, ?>> data, List<String> imageUrls, int resource, String[] from, int[] to) {
        super(context, data, resource, from, to);
        mImageUrls = imageUrls;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);

        ImageView imageView = view.findViewById(R.id.my_image);
        ImageLoader.getInstance().displayImage(mImageUrls.get(position), imageView);

        return view;
    }
}
公共类mysimpledapter扩展了simpledapter{
私有列表;
公共MySimpleAdapter(上下文上下文,列表>数据,列表图像URL,int资源,字符串[]从,int[]到){
超级(上下文、数据、资源、从、到);
mImageUrls=imageUrls;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=super.getView(位置、转换视图、父级);
ImageView ImageView=view.findViewById(R.id.my_图像);
ImageLoader.getInstance().displayImage(mImageUrls.get(位置),imageView);
返回视图;
}
}

然后将
imageURL
传递给构造函数。

这样就行了。我在这个问题上采取了不同的方法。无论如何,谢谢你!