RecyclerView“无法解析符号"错误-Android Studio
我无法解决所有RecyclerView上的符号错误.到底是怎么回事?由于RecyclerView出现错误,因此LayoutManager上也出现了错误.我的最后四个Override语句在错误的位置,我不知道该去哪里.我是一个初学者,并且具有非常基础的编程知识,所以我不知道如何解决此问题.我正在上课,但教授根本没有帮助.
I am getting cannot resolve symbol errors on all my RecyclerView's. What is going on? Because I have an error with RecyclerView, I also have errors on LayoutManager. My last four Override statements are in the wrong place and I don't know where they go. I am a beginner and have a very basic knowledge of programming so I don't know how to fix this. I am taking a class but the professor isn't helpful at all.
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);
}
}
}
这些是您的导入语句,
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;
好像您尚未导入 RecyclerView
, LayoutManager
以及您在Android中内置使用的任何内容.您只需要导入在其下看到红线的类即可.
Looks like you haven't imported RecyclerView
, LayoutManager
and anything which you are using inbuilt in Android. You just need to import the classes that you are seeing red lines under.
如何导入?
在Windows上按 alt + Enter
,或在Mac上按 alt + return
进行导入.您应该将光标放在课程的最后.
Press alt + Enter
on windows, or alt + return
on mac to import. You should have your cursor at the end of class.
如果尚未导入库,则将其添加到依赖关系的 build.gradle
文件中.
If you haven't imported library, then add this to build.gradle
file under dependancies.
compile 'com.android.support:recyclerview-v7:21.0.+'
更新:
最新的回收站库是这样的:
Latest recycler library is this :
-
具有最新的gradle版本.3.0或更高版本.
With latest gradle version. 3.0 or above.
implementation 'com.android.support:recyclerview-v7:28.0.0'
具有旧的gradle版本
with old gradle version
compile 'com.android.support:recyclerview-v7:28.0.0'
更新:最新的Androidx Jetpack依赖项
Update: latest Androidx Jetpack dependencies
dependencies {
implementation "androidx.recyclerview:recyclerview:1.1.0"
// For control over item selection of both touch and mouse driven selection
implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}
源: https://developer.android.com/jetpack/androidx/releases/recyclerview