2015-12-15 100 views
5

我试图在AppCompatActivity的ViewPager中的片段中创建一个ListView。在AppCompatActivity中,所有视图元素都被封装在CoordinatorLayout中。因为我使用了CoordinatorLayout。我不得不使用RecylerView我试图按照 developer.android.com的训练,但我的应用程序在我的日志后停止。这是myFragment中我的代码在应用程序停止。在片段中实现RecyclerView

import android.app.Activity; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

//... 

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

    mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list); 
    mLayoutManager = new LinearLayoutManager(this.getActivity()); 
    Log.d("debugMode", "The application stopped after this"); 
    mRecyclerView.setLayoutManager(mLayoutManager); 

    mAdapter = new RecyclerAdapter(getNames()); 
    mRecyclerView.setAdapter(mAdapter); 
    return view; 
} 

//... 
+0

你能后的崩溃报告吗? – sha

回答

9

使用此

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

    // Replace 'android.R.id.list' with the 'id' of your RecyclerView 
    mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list); 
    mLayoutManager = new LinearLayoutManager(this.getActivity()); 
    Log.d("debugMode", "The application stopped after this"); 
    mRecyclerView.setLayoutManager(mLayoutManager); 

    mAdapter = new RecyclerAdapter(getNames()); 
    mRecyclerView.setAdapter(mAdapter); 
    return view; 
} 

请立即拨打了RecyclerviewsetLayoutManager & setAdapter方法(分别)。

另外,

mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list);

因为你不使用ListFragment你不应该使用android.R.id.list。将其替换为您的idRecyclerview,如在您的XML布局中)。

+1

Woww谢谢!很晚了,我没有看到R.id.list没有引用我的列表!我被困了几个小时! – user3432681

-1

你是否将android.R.id.list设置为recyclerview ID?否则你应该设置一个ID,recyclerview在XML文件中,就像这样:

android:id="@+id/recyclerview" 

和改变这一行

mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list); 

mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);