猿问

[Android] [RecyclerView]方法不会覆盖或实现超类型的方法

我正在按照本教程开发一个简单的Android应用程序。我在此消息的onBindViewHolder方法上遇到编译错误:


错误:方法未覆盖或从超类型实现方法


这是我的代码:


import android.support.annotation.NonNull;

import android.support.v7.widget.RecyclerView;

import android.view.LayoutInflater;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;


public class CryptogramPairingAdapter extends RecyclerView.Adapter {

    private String[] mDataset;


    // Provide a reference to the views for each data item

    // Complex data items may need more than one view per item, and

    // you provide access to all the views for a data item in a view holder

    public static class ViewHolder extends RecyclerView.ViewHolder {

        // each data item is just a string in this case

        public TextView mTextView;

        public ViewHolder(TextView v) {

            super(v);

            mTextView = v;

        }

    }


    // Provide a suitable constructor (depends on the kind of dataset)

    public CryptogramPairingAdapter(String[] myDataset) {

        mDataset = myDataset;

    }


    // Create new views (invoked by the layout manager)

    @Override

    public ViewHolder onCreateViewHolder(ViewGroup parent,

                                                   int viewType) {

        // create a new view

        TextView v = (TextView) LayoutInflater.from(parent.getContext())

                .inflate(R.layout.pair_crypto_recyclerview, parent, false);

        CryptogramPairingAdapter.ViewHolder vh = new ViewHolder(v);

        return vh;

    }


    // Replace the contents of a view (invoked by the layout manager)

    @Override

    public void onBindViewHolder(ViewHolder holder, int position) {

        // - get element from your dataset at this position

        // - replace the contents of the view with that element

        holder.mTextView.setText(mDataset[position]);


    }


    // Return the size of your dataset (invoked by the layout manager)

    @Override

    public int getItemCount() {

        return mDataset.length;

    }

}

我很困惑,因为代码与引用几乎相同(除了修改后的名称)。


烙印99
浏览 503回答 1
1回答

慕少森

我建议你改变你的ViewHolder被命名为比其他的东西ViewHolder,因为它是有冲突的ViewHolder,并简单地去给你带来的混乱区分ViewHolder从ViewHolder。(我在他们的示例中向Google抱怨这种糟糕的做法)给定当前状态的代码,请更改:public&nbsp;class&nbsp;CryptogramPairingAdapter&nbsp;extends&nbsp;RecyclerView.Adapter至:public&nbsp;class&nbsp;CryptogramPairingAdapter&nbsp;extends&nbsp;RecyclerView.Adapter<CryptogramPairingAdapter.ViewHolder>
随时随地看视频慕课网APP

相关分类

Java
我要回答