Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 RecyclerView在某个时间查看重复的项目_Android_Android Recyclerview - Fatal编程技术网

Android RecyclerView在某个时间查看重复的项目

Android RecyclerView在某个时间查看重复的项目,android,android-recyclerview,Android,Android Recyclerview,嘿,伙计们,我正在使用recyclerview显示我的图像,但他们同时复制了我在谷歌上搜索这个问题的方法,我找到了,或者更多,但没有人帮我 我的代码是 ShareDialog shareDialog; String PATH; String link , img_txt; private ImageLoader imageLoader; private Context context; String url1; CallbackManager callbackManager; File file

嘿,伙计们,我正在使用recyclerview显示我的图像,但他们同时复制了我在谷歌上搜索这个问题的方法,我找到了,或者更多,但没有人帮我

我的代码是

ShareDialog shareDialog;
String PATH;
String link , img_txt;
private ImageLoader imageLoader;
private Context context;
String url1;
CallbackManager callbackManager;
File file1;
List<ImgModel> listmodel;
    public ImageAdapter(List<ImgModel> listmodel, Context context) {
    super();
    this.listmodel = listmodel;
    this.context = context;
    setHasStableIds(true);  //added  15/7/2016
}
   @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext())
        .inflate(R.layout.img_row, parent, false);
     ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {

    ImgModel model = listmodel.get(position);
    imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
    imageLoader.get(model.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.placeholder, android.R.drawable.ic_dialog_alert));
    holder.imageView.setImageUrl(model.getImageUrl(), imageLoader);
    holder.textViewName.setText(model.getName());
    holder.imageView.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        link = listmodel.get(position).getImageUrl();
        img_txt = listmodel.get(position).getName();
        String fileExtension = link.substring(link.lastIndexOf("/"));
        Log.e("0_0","===>"+fileExtension);
        String dir = Environment.getExternalStorageDirectory() + "/Download/myapp/";
         file1 = new File(dir+fileExtension);
        Log.d("file is ","longclick"+file1);
        if (file1.exists()) {
            Intent shareIntent = new Intent();
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.setType("image/jpg");
            shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(String.valueOf(file1))));
            shareIntent.putExtra(Intent.EXTRA_TEXT, img_txt);
            context.startActivity(Intent.createChooser(shareIntent, "Share image with"));
        } else {
            new DownloadFile().execute(link);
        }
        return true;
    }
    });
    holder.imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    url1 = listmodel.get(position).getImageUrl();
    Log.e("Hey Amit", "second is url" + url1);
    Imagefull();
    }
    });
    }
@Override
public int getItemCount() {
     return listmodel.size();
     }

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

 class ViewHolder extends RecyclerView.ViewHolder {
  public NetworkImageView imageView;
  public TextView textViewName;

  public ViewHolder(View itemView) {
    super(itemView);
    imageView = (NetworkImageView) itemView.findViewById(R.id.imageView_img);
    textViewName = (TextView) itemView.findViewById(R.id.textview_img);
    callbackManager = CallbackManager.Factory.create();
    }
}
ShareDialog;
字符串路径;
字符串链接,img_txt;
私有图像加载器;
私人语境;
字符串url1;
CallbackManager CallbackManager;
文件文件1;
列表模型;
公共ImageAdapter(列表列表模型、上下文){
超级();
this.listmodel=listmodel;
this.context=上下文;
setHassTableId(true);//添加了2016年7月15日
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext())
.充气(R.layout.img_行,父级,假);
视窗夹持器视窗夹持器=新视窗夹持器(v);
返回视图持有者;
}
@凌驾
公共无效onBindViewHolder(ViewHolder,最终int位置){
ImgModel model=listmodel.get(位置);
imageLoader=CustomVolleyRequest.getInstance(上下文).getImageLoader();
获取(model.getImageUrl(),imageLoader.getImageListener(holder.imageView,R.drawable.placeholder,android.R.drawable.ic_对话框_警报));
holder.imageView.setImageUrl(model.getImageUrl(),imageLoader);
holder.textViewName.setText(model.getName());
holder.imageView.setOnLongClickListener(新视图.OnLongClickListener(){
@凌驾
仅长按公共布尔值(视图v){
link=listmodel.get(position.getImageUrl();
img_txt=listmodel.get(position.getName();
字符串fileExtension=link.substring(link.lastIndexOf(“/”);
Log.e(“0_0”,“==>”+文件扩展名);
String dir=Environment.getExternalStorageDirectory()+“/Download/myapp/”;
file1=新文件(dir+fileExtension);
Log.d(“文件为”,“长点击”+file1);
if(file1.exists()){
意向共享意向=新意向();
shareIntent.setAction(Intent.ACTION\u SEND);
setType(“image/jpg”);
shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(新文件(String.valueOf(file1)));
shareIntent.putExtra(Intent.EXTRA\u文本,img\u文本);
context.startActivity(Intent.createChooser(shareIntent,“与共享图像”);
}否则{
新建下载文件().execute(链接);
}
返回true;
}
});
holder.imageView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
url1=listmodel.get(位置).getImageUrl();
Log.e(“Hey Amit”,“第二个是url”+url1);
Imagefull();
}
});
}
@凌驾
public int getItemCount(){
返回listmodel.size();
}
公共长getItemId(int位置){
返回位置;
}
类ViewHolder扩展了RecyclerView.ViewHolder{
公共网络图像视图;
公共文本视图文本视图名称;
公共视图持有者(视图项视图){
超级(项目视图);
imageView=(NetworkImageView)itemView.findViewById(R.id.imageView\u img);
textViewName=(TextView)itemView.findViewById(R.id.TextView\u img);
callbackManager=callbackManager.Factory.create();
}
}

我怀疑您可能听说过
设置hasstableids(true)
会加快您的recyclerviews,但请尝试将其删除或设置为false

因此,简单地尝试一下:

setHasStableIds(false);
然后让我知道会发生什么

我有这个问题,有时项目被复制,有时根本就没有出现,在删除该方法调用后,它修复了我的问题


祝你好运和快乐

我怀疑您可能听说过
setHasStableIds(true)
会加快您的recyclerviews,但请尝试删除它或将其设置为false

因此,简单地尝试一下:

setHasStableIds(false);
然后让我知道会发生什么

我有这个问题,有时项目被复制,有时根本就没有出现,在删除该方法调用后,它修复了我的问题


祝你好运和快乐

将版面中的高度((R.layout.img_行)更改为换行内容而不是匹配内容

将版面中的高度((R.layout.img_行)更改为换行内容而不是匹配内容

将上面的行替换为以下内容:

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {

    @Override
public ImageAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext())
    .inflate(R.layout.img_row, parent, false);
 ImageAdapter.ViewHolder viewHolder = new ImageAdapter.ViewHolder(v);
return viewHolder;
}

@Override
public void onBindViewHolder(final ImageAdapter.ViewHolder holder, final int position) {

ImgModel model = listmodel.get(holder.getAdapterPosition()
    );
...........
..............
}

}
公共类ImageAdapter扩展了RecyclerView.Adapter{
@凌驾
public ImageAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext())
.充气(R.layout.img_行,父级,假);
ImageAdapter.ViewHolder ViewHolder=新的ImageAdapter.ViewHolder(v);
返回视图持有者;
}
@凌驾
public void onBindViewHolder(最终图像适配器.ViewHolder支架,最终int位置){
ImgModel model=listmodel.get(holder.getAdapterPosition()
);
...........
..............
}
}

将上述行替换为以下行:

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {

    @Override
public ImageAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext())
    .inflate(R.layout.img_row, parent, false);
 ImageAdapter.ViewHolder viewHolder = new ImageAdapter.ViewHolder(v);
return viewHolder;
}

@Override
public void onBindViewHolder(final ImageAdapter.ViewHolder holder, final int position) {

ImgModel model = listmodel.get(holder.getAdapterPosition()
    );
...........
..............
}

}
公共类ImageAdapter扩展了RecyclerView.Adapter{
@凌驾
public ImageAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext())
.充气(R.layout.img_行,父级,假);
ImageAdapter.ViewHolder ViewHolder=新的ImageAdapter.ViewHolder(v);
返回视图持有者;
}
@凌驾
public void onBindViewHolder(最终图像适配器.ViewHolder支架,最终int位置){
ImgModel model=listmodel.get(holder.getAdapterPosition()
);
...........
..............
}
}

感谢您的回复,但当它为真时,它会给出某个重复的值,但当它为假时,它会给出每一次为什么只需完全删除该方法并查看发生了什么;让我知道感谢回复,但当它为真时,它会给出某个重复的值,但当它为假时,它会给出每一次为什么只需完全删除该方法并查看w发生了这种情况;让我知道,当图像没有使用URL加载时,我认为这是在显示重复的图像。不,有时会重复,但当URL加载时,我调试我的c