RecyclerView"无法解析符号"错误 - Android Studio

rpa*_*h17 15 android android-recyclerview

我无法解决所有RecyclerView上的符号错误.到底是怎么回事?因为我在RecyclerView上有错误,所以我在LayoutManager上也有错误.我的最后四个覆盖语句是在错误的地方,我不知道他们去了哪里.我是初学者,对编程有非常基本的了解,所以我不知道如何解决这个问题.我正在上课,但教授根本没有帮助.

package com.bignerdranch.android.criminalintent;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;


public class CrimeListFragment extends Fragment {

    private RecyclerView mCrimeRecyclerView;
    private CrimeAdapter mAdapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_crime_list, container, false);

        mCrimeRecyclerView = (RecyclerView) view
                .findViewById(R.id.crime_recycler_view);
        mCrimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

        return view;
    }

    @Override
    public void onResume() {
        super.onResume();
        updateUI();
    }

    private void updateUI(){
        CrimeLab crimeLab = CrimeLab.get(getActivity());
        List<Crime> crimes = crimeLab.getCrimes();

        if (mAdapter == null) {
            mAdapter = new CrimeAdapter(crimes);
            mCrimeRecyclerView.setAdapter(mAdapter);
        } else {
            mAdapter.notifyDataSetChanged();
        }
    }
        private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder> {
            private List<Crime> mCrimes;
            public CrimeAdapter(List<Crime> crimes) {
                mCrimes = crimes;
            }
        }
        private class CrimeHolder extends RecyclerView.ViewHolder
                implements View.OnClickListener {
            private TextView mTitleTextView;
            private TextView mDateTextView;
            private CheckBox mSolvedCheckBox;
            private Crime mCrime;

            public CrimeHolder(View itemView) {
                super(itemView);

                mTitleTextView = (TextView)
                        itemView.findViewById(R.id.list_item_crime_title_text_view);
                mDateTextView = (TextView)
                        itemView.findViewById(R.id.list_item_crime_date_text_view);
                mSolvedCheckBox = (CheckBox)
                        itemView.findViewById(R.id.list_item_crime_solved_check_box);
            }

            public void bindCrime(Crime crime) {
                mCrime = crime;
                mTitleTextView.setText(mCrime.getTitle());
                mDateTextView.setText(mCrime.getDate().toString());
                mSolvedCheckBox.setChecked(mCrime.isSolved());
            }

            @Override
            public CrimeHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
                View view = layoutInflater.inflate(R.layout.list_item_crime, parent, false);
                return new CrimeHolder(view);
            }

            @Override
            public void onBindViewHolder(CrimeHolder holder, int position) {
                Crime crime = mCrimes.get(position);
                holder.bindCrime(crime);
            }

            @Override
            public int getItemCount() {
                return mCrimes.size();
            }

            @Override
            public void onClick(View v) {
                Intent intent = CrimeActivity.newIntent(getActivity(), mCrime.getId());
                startActivity(intent);
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

Aja*_*ati 22

这些是你的进口声明,

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
Run Code Online (Sandbox Code Playgroud)

看起来你没有导入RecyclerView,LayoutManager以及你在Android中内置的任何内容.您只需要导入您看到红线的类.

How to Import?

alt + EnterWindows或alt + returnMac导入.你应该把光标放在课程的最后.

如果您尚未导入库,则将其添加到build.gradledependancies下的文件中.

compile 'com.android.support:recyclerview-v7:21.0.+' 
Run Code Online (Sandbox Code Playgroud)

更新:

最新的回收库是这样的:

  1. 随着最新的gradle版本.3.0或以上.

    implementation 'com.android.support:recyclerview-v7:28.0.0'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 与旧gradle版本

    compile 'com.android.support:recyclerview-v7:28.0.0'
    
    Run Code Online (Sandbox Code Playgroud)


liv*_*ove 10

对于最新版本的Android Studio 3:

在Gradle Scripts,build.gradle(Module)下找到gradle文件

添加依赖:

dependencies {
...
    implementation 'com.android.support:cardview-v7:27.0.+'
    implementation 'com.android.support:recyclerview-v7:27.0.+'

}
Run Code Online (Sandbox Code Playgroud)

同步您的gradle文件(文件/同步项目与gradle文件).

返回到您的代码并在缺少的参考上点击ALT + Enter.

那应该是它.