2016-09-21 99 views
3

我得到无法解决所有RecyclerView上的符号错误。到底是怎么回事?因为我的RecyclerView有错误,所以我在LayoutManager上也有错误。我最近的四次覆盖声明是错误的,我不知道他们去了哪里。我是初学者,对编程有很基本的了解,所以我不知道如何解决这个问题。我正在上课,但教授根本没有帮助。RecyclerView“无法解析符号”错误 - Android Studio

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); 
      } 
     } 
} 
+0

检查你的依赖项应该是这样的:'compile'c​​om.android.support:recyclerview -v7:xx.x.x'' - x的版本 –

+0

这应该在我的库依赖? – rpach17

+0

是的,在模块级别。检查版本的其他Android依赖版本,应该是'24.2.1',并匹配它。 –

回答

5

这些import语句,

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; 

貌似没有汇入RecyclerViewLayoutManager和任何您在使用Android的内置。你只需要导入你在下面看到红线的类。

How to Import?

在Mac

alt + Enter在Windows,或alt + return进口。你应该把光标放在课程结束时。

如果您还没有导入库,请将其添加到依赖项下的build.gradle文件中。

compile 'com.android.support:recyclerview-v7:21.0.+' 
+0

在RecyclerView和LayoutManager – rpach17

+0

更新的答案下进口有红线,尝试添加库并重建项目。 –

+0

我已经添加了一个依赖库 – rpach17

3

对于3最新版本的Android工作室:

查找下摇篮脚本,您的build.gradle的Gradle文件(模块)

添加依赖:

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

} 

同步您的gradle文件(带有gradle文件的文件/同步项目)。

返回到您的代码并在缺少的引用上按ALT + Enter。

应该是这样。

相关问题