Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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/visual-studio-2008/2.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 无适配器连接;跳过布局回收视图_Android_Android Adapter_Android Recyclerview - Fatal编程技术网

Android 无适配器连接;跳过布局回收视图

Android 无适配器连接;跳过布局回收视图,android,android-adapter,android-recyclerview,Android,Android Adapter,Android Recyclerview,图像未显示。在一个SO示例中,我说要检查适配器中的计数,但我认为这是正确的。 我在日志中发现了这个错误 No adapter attached; skipping layout recyclerview 这是代码main活动 RecyclerOkHttpHandler handler = new RecyclerOkHttpHandler( this, new RecyclerOkHttpHandler.MyInterface() { @Override pub

图像未显示。在一个SO示例中,我说要检查适配器中的计数,但我认为这是正确的。 我在日志中发现了这个错误

No adapter attached; skipping layout recyclerview
这是代码main活动

RecyclerOkHttpHandler handler = new RecyclerOkHttpHandler( this, new RecyclerOkHttpHandler.MyInterface() {
        @Override
        public void myMethod(ArrayList result) {
            mAdapter = new MyAdapter(result,Search.this);
            mAdapter.notifyDataSetChanged();
            mRecyclerView.setAdapter(mAdapter);
这是我的适配器

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private ArrayList<Listitem> mDataset;
    Context mContext;
    public class ImageViewHolder extends RecyclerView.ViewHolder {
        //ImageView mImage;
        public TextView txtHeader;
        public TextView txtFooter;
        public ImageView image;
        public ImageViewHolder(View itemView) {
            super (itemView);
            txtHeader = (TextView) itemView.findViewById(R.id.firstLine);
            txtFooter = (TextView) itemView.findViewById(R.id.secondLine);
             image = (ImageView) itemView.findViewById(R.id.icon);
        }
    }


    public void add(int position, Listitem item) { //changed from string to listitem

        mDataset.add(position, item);
        notifyItemInserted(position);
    }

    public void remove(String item) {
        int position = mDataset.indexOf(item);
        mDataset.remove(position);
        notifyItemRemoved(position);
    }

    // Provide a suitable constructor (depends on the kind of dataset)
    public MyAdapter(ArrayList<Listitem> myDataset, Context context) {

        mDataset = myDataset;
        mContext = context;

    }

    // Create new views (invoked by the layout manager)
    @Override
    public RecyclerView.ViewHolder  onCreateViewHolder(ViewGroup parent,
                                                       int viewType) {

            // create a new view
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.rowlayout, parent, false);
            // set the view's size, margins, paddings and layout parameters
            ImageViewHolder vh = new ImageViewHolder(v);
            return vh;
        }


    private static final int TYPE_IMAGE = 1;
    private static final int TYPE_GROUP = 2;

    @Override
    public int getItemViewType(int position) {
        // here your custom logic to choose the view type
        return position;
    }

    // Replace the contents of a view (invoked by the layout manager)
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder TextViewHolder, int position) {

                ImageViewHolder viewHolder = (ImageViewHolder) TextViewHolder;
                //  viewHolder.txtHeader.setText(...)
        final Listitem item;

      //  final String name = mDataset.get(position);
        item = mDataset.get(position);
      //  viewHolder.txtHeader.setText(mDataset.get(position));
        viewHolder.txtHeader.setText(mDataset.get(position).getUrl());


        Picasso.with(mContext)
                .load(item.getUrl())
                .placeholder(R.drawable.logo)
                .fit()
                .noFade()
                .into(viewHolder.image);

              /*  viewHolder.txtFooter.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        remove(item);
                    }
                });*/

               // viewHolder.txtFooter.setText("Footer: " + mDataset.get(position));

        }


    // Return the size of your dataset (invoked by the layout manager)
    @Override
    public int getItemCount() {
        return mDataset.size();
    }

}
公共类MyAdapter扩展了RecyclerView.Adapter{ 私有ArrayList数据集; 语境; 公共类ImageViewHolder扩展了RecyclerView.ViewHolder{ //图像视图模拟图像; 公共文本视图txtHeader; 公共文本视图txtFooter; 公众形象; 公共图像视图持有者(视图项视图){ 超级(项目视图); txtHeader=(TextView)itemView.findViewById(R.id.firstLine); txtFooter=(TextView)itemView.findViewById(R.id.secondLine); image=(ImageView)itemView.findViewById(R.id.icon); } } public void add(int位置,Listitem项){//从字符串更改为Listitem mDataset.add(位置、项目); (位置); } 公共无效删除(字符串项){ int position=mDataset.indexOf(项目); mDataset.remove(位置); 已移除(位置)的项目; } //提供合适的构造函数(取决于数据集的类型) 公共MyAdapter(ArrayList myDataset,上下文){ mDataset=myDataset; mContext=上下文; } //创建新视图(由布局管理器调用) @凌驾 public RecyclerView.ViewHolder onCreateViewHolder(视图组父级, int视图类型){ //创建新视图 视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.rowlayout,parent,false); //设置视图的大小、边距、填充和布局参数 ImageViewHolder vh=新的ImageViewHolder(v); 返回vh; } 私有静态最终整数类型_IMAGE=1; 私有静态最终int TYPE_GROUP=2; @凌驾 public int getItemViewType(int位置){ //这里是选择视图类型的自定义逻辑 返回位置; } //替换视图的内容(由布局管理器调用) @凌驾 BindViewHolder上的公共无效(RecyclerView.ViewHolder文本ViewHolder,int位置){ ImageViewHolder viewHolder=(ImageViewHolder)TextViewHolder; //viewHolder.txtHeader.setText(…) 最后清单项目; //最终字符串名称=mDataset.get(位置); item=mDataset.get(位置); //viewHolder.txtHeader.setText(mDataset.get(position)); viewHolder.txtHeader.setText(mDataset.get(position.getUrl()); 毕加索(McContext) .load(item.getUrl()) .占位符(R.可绘制.徽标) .fit() .noFade() .into(viewHolder.image); /*viewHolder.txtFooter.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 删除(项目); } });*/ //viewHolder.txtFooter.setText(“页脚:+mDataset.get(position)); } //返回数据集的大小(由布局管理器调用) @凌驾 public int getItemCount(){ 返回mDataset.size(); } }
在以下代码行中设置适配器之前,请先删除mAdapter.notifyDataSetChanged()。一旦为RecyclerView设置了适配器,就可以执行此操作

  @Override
        public void myMethod(ArrayList result) {
            mAdapter = new MyAdapter(result,Search.this);
            mAdapter.notifyDataSetChanged();
            mRecyclerView.setAdapter(mAdapter);

在以下代码行中设置适配器之前,请删除mAdapter.notifyDataSetChanged()。一旦为RecyclerView设置了适配器,就可以执行此操作

  @Override
        public void myMethod(ArrayList result) {
            mAdapter = new MyAdapter(result,Search.this);
            mAdapter.notifyDataSetChanged();
            mRecyclerView.setAdapter(mAdapter);

尝试调试代码并检查是否执行了
myMethod()
method

另外,创建适配器时无需调用
notifyDataSetChanged()

public void myMethod(ArrayList result) {
       mAdapter = new MyAdapter(result,Search.this);
       mRecyclerView.setAdapter(mAdapter);
}

尝试调试代码并检查是否执行了
myMethod()
method

另外,创建适配器时无需调用
notifyDataSetChanged()

public void myMethod(ArrayList result) {
       mAdapter = new MyAdapter(result,Search.this);
       mRecyclerView.setAdapter(mAdapter);
}

看一看,这不是致命的错误,更像是一个警告。@MohammedAoufZOUAG它没有进入okhttpclass@Rami好的,我查一下thanks@Rami你就是那个人!,你是对的,它没有访问myMethod,因为我忘记了执行okhttp需要执行才能工作。请添加为接受答案,感谢您的支持。请看一看,这不是致命错误,更像是一个警告。@MohammedAoufZOUAG嗯,它没有进入okhttpclass@Rami好的,我查一下thanks@Rami你就是那个人!,你是对的,它没有访问myMethod,因为我忘记了执行okhttp需要执行才能工作。请添加作为接受答案,感谢您的支持我照您所说的做了,但仍然收到错误E/RecyclerView:未连接适配器;跳过layoutOk tell me//viewHolder.txtHeader.setText(mDataset.get(position));适配器中的注释代码是否正常工作?我的意思是文本是否正确显示?错误为未连接适配器;跳过布局回收视图是可以的,因为您并没有在片段的onCreateView()活动的onCreate()中设置适配器,而是在后台线程中进行设置。所以这个警告对我来说很好。谢谢你的支持我的错误是我没有为okhhtp添加执行,当我添加时,它起作用了。谢谢你的支持哦……愚蠢的错误P,有时会发生。不客气。我照你说的做了,但仍然收到错误E/RecyclerView:没有连接适配器;跳过layoutOk tell me//viewHolder.txtHeader.setText(mDataset.get(position));适配器中的注释代码是否正常工作?我的意思是文本是否正确显示?错误为未连接适配器;跳过布局回收视图是可以的,因为您并没有在片段的onCreateView()活动的onCreate()中设置适配器,而是在后台线程中进行设置。所以这个警告对我来说似乎很好