首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LazyList问题

使用LazyList问题
EN

Stack Overflow用户
提问于 2011-09-05 19:33:39
回答 2查看 452关注 0票数 2

我已经使用惰性列表概念实现了示例应用程序。我想将所有字符串数组值从LazyAdapter(扩展BaseAdapter)类分配给文本视图

我使用了这个类,如下所示

代码语言:javascript
复制
 public class LazyAdapter extends BaseAdapter {

private Activity activity;
private String[] data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;



public LazyAdapter(Activity a, String[] d) {
    activity = a;
    data=d;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    imageLoader=new ImageLoader(activity.getApplicationContext());
}

public int getCount() {
    return data.length;
}

public Object getItem(int position) {
    return position;
}

public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;


    if(convertView==null)
        vi = inflater.inflate(R.layout.item, null);



         String texts[]={"hai","how are you","hello","oyeeee"};

        //i would like to set this texts[] values to TextView

        for(int i=0;i< texts.size();i++)
        { 
         TextView text=(TextView)vi.findViewById(R.id.text);;
         ImageView image=(ImageView)vi.findViewById(R.id.image);
         text.setText("item "+texts[i]);
         imageLoader.DisplayImage(data[position], activity, image);


           }
    return vi;

       }
   }

在这里我只能显示oyeee.how我能以列表的形式查看所有值吗

这里如何显示列表中的所有字符串数组值,就像在惰性列表中显示item0、item1、item2、....etc一样。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-05 20:08:01

问题是因为您对每个要填充的项都使用了for循环。在本例中,由于for each view循环被执行,显然它是数组中的最后一个元素,因此在所有行中打印"oyeeee“就不足为奇了。

现在您要做的是,您可以在活动中的某个位置全局提供数组,并在getView()中更改代码,如下所示:

//数组的全局声明

代码语言:javascript
复制
 String texts[]={"hai","how are you","hello","oyeeee"};
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;


if(convertView==null)
    vi = inflater.inflate(R.layout.item, null);


     TextView text=(TextView)vi.findViewById(R.id.text);
     ImageView image=(ImageView)vi.findViewById(R.id.image);
     text.setText("item "+texts[postion]);
     imageLoader.DisplayImage(data[position], activity, image);


       }
return vi;

   }

}

这就是它所需要的。

票数 2
EN

Stack Overflow用户

发布于 2011-09-05 19:39:03

删除GetView代码并在GetView函数中编写以下代码。

代码语言:javascript
复制
String texts[]={"hai","how are you","hello","oyeeee"};
View vi = convertView;
        if (convertView == null) {
            vi = inflater.inflate(R.layout.item, null);
            image = (ImageView) vi.findViewById(R.id.imgview);
            txtviewtitle=(TextView)vi.findViewById(R.id.txtviewtitle);
        }
        txtviewtitle.setText(texts[position]);
        imageLoader.DisplayImage(data[position], activity, image);

        return vi;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7307442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档