2016-09-21 56 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。

應該是這樣。

相關問題