2016-09-21 19 views
3

RecyclerViewのシンボルエラーを解決できません。何が起こっている? RecyclerViewでエラーが発生しているため、LayoutManagerにもエラーがあります。私の最後の4つのOverrideステートメントは間違った場所にあり、どこに行くのか分かりません。私は初心者であり、プログラミングの非常に基本的な知識を持っているので、これを修正する方法はわかりません。私はクラスを取っていますが、教授は役に立たない。RecyclerView "シンボルを解決できません"というエラー - Androidスタジオ

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 'com.android.support:recyclerview-v7:xx.x.x'' - バージョンは –

+0

です。 – rpach17

+0

はい、モジュールレベルです。バージョンを確認してください他のアンドロイドの依存関係のバージョンは、'24 .2.1 'のようなものでなければなりません。 –

答えて

5

これらはあなたがRecyclerViewLayoutManagerそしてあなたは、Androidに作り付けを使用しているものを輸入していないよう

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; 

が見える、あなたのimport文です。赤い線が表示されているクラスをインポートするだけです。インポートするMac上でWindows、またはalt + return

How to Import?

押しalt + Enter。あなたはクラスの最後にカーソルを置くべきです。

ライブラリをインポートしていない場合は、これをbuild.gradleに依存するファイルに追加します。

のAndroid Studioの3の最新版について
compile 'com.android.support:recyclerview-v7:21.0.+' 
+0

インポートには、RecyclerViewおよびLayoutManager – rpach17

+0

の下に赤い線が表示され、回答が更新され、ライブラリを追加してプロジェクトを再構築します。 –

+0

私はすでに依存ライブラリを追加しました – rpach17

3

のGradleスクリプトの下にGradleのファイルを検索し、build.gradle(モジュール)

依存関係を追加します。

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

} 

同期あなたグラデルファイル(ファイル/グラデーションファイルを含むプロジェクトの同期)。

コードに戻って、欠落している参照でAlt + Enterキーを押します。

これはそうです。

関連する問題