Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android LazyList设置图像问题_Android_Listview_Lazy Loading - Fatal编程技术网

Android LazyList设置图像问题

Android LazyList设置图像问题,android,listview,lazy-loading,Android,Listview,Lazy Loading,实际上,我想问的问题更像是得到一些建议,这是做我想做的事情的最好方式。我正在应用程序中使用延迟加载列表。我需要能够设置一个不同的图像列表视图项目,这取决于用户是否订阅该图像。如果他不是,它将显示一个默认图像。如果他是,真实的形象。以下是我正在使用的代码: import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.LayoutInflater;

实际上,我想问的问题更像是得到一些建议,这是做我想做的事情的最好方式。我正在应用程序中使用延迟加载列表。我需要能够设置一个不同的图像列表视图项目,这取决于用户是否订阅该图像。如果他不是,它将显示一个默认图像。如果他是,真实的形象。以下是我正在使用的代码:

import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

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 static class ViewHolder{
        public TextView name,info;
        public ImageView image;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        ViewHolder holder;
        if(convertView==null){
            vi = inflater.inflate(R.layout.item, null);
            holder=new ViewHolder();
            holder.name=(TextView)vi.findViewById(R.id.name);
            holder.info=(TextView)vi.findViewById(R.id.info);
            holder.image=(ImageView)vi.findViewById(R.id.image);
            vi.setTag(holder);
            Log.v("",""+position);
        }
        else
            holder=(ViewHolder)vi.getTag();

        holder.name.setText("");
        holder.info.setText("");
        holder.image.setTag(data[position]);
        imageLoader.DisplayImage(data[position], activity, holder.image);
        return vi;
    }
}
所以我想设置不同的文本到名称字段,到信息字段,和不同的图像,这取决于用户是否订阅。我从Sqlite数据库中获取的文本。那么,有什么想法或建议是最好的方法吗


我真的很感激任何帮助!谢谢

所以您的数据在变量“Data”中

if (userIsSubscribed) {
    holder.name.setText("subscribedUserName");
    holder.info.setText("subscribedUserInfo");
    holder.image.setImageResource(drawable.userSubscribedImage);
} else {
    holder.name.setText("unsubscribedUserName");
    holder.info.setText("unsubscribedUserInfo");
    holder.image.setImageResource(drawable.userUnSubscribedImage);
}
在getView方法中使用数据,就像处理图像一样

    holder.name.setText(data[position].getName());
    holder.info.setText(data[position].getInfo());
    holder.image.setTag(data[position]);
    imageLoader.DisplayImage(data[position], activity, holder.image);

因此,您的数据包含在变量“Data”中

在getView方法中使用数据,就像处理图像一样

    holder.name.setText(data[position].getName());
    holder.info.setText(data[position].getInfo());
    holder.image.setTag(data[position]);
    imageLoader.DisplayImage(data[position], activity, holder.image);

持有人代表listview中的单个项目,因此无论如何,每个项目都将被处理持有人代表listview中的单个项目,因此无论如何,每个项目都将被处理