在RecyclerView

问题描述:

我试图获得一个列表,在RecyclerView一个数组,并得到错误setLayoutManager NullPointException:在RecyclerView

java.lang.NullPointerException: Attempt to invoke virtual method 
'void android.support.v7.widget.RecyclerView.setLayoutManager 
(android.support.v7.widget.RecyclerView$LayoutManager)'on a null object reference 

RecyclerView widget的

<android.support.v7.widget.RecyclerView 
     android:id="@+id/drawerList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    </android.support.v7.widget.RecyclerView> 

我试图布局管理申报到最后,但它没有帮助。

活动代码:

public class MainActivity extends ActionBarActivity { 

private RecyclerView recyclerView; 
private Toolbar toolbar; 
private InfAdapter adapter; 


@Override 
protected void onCreate (Bundle savedInstanceState) { 
    super.onCreate (savedInstanceState); 
    setContentView (R.layout.activity_main_appbar); 

    recyclerView = (RecyclerView) findViewById(R.id.drawerList); 

    recyclerView.setLayoutManager(new LinearLayoutManager(this)); 

    InfAdapter mAdapter = new InfAdapter(this, getData()); 
    recyclerView.setAdapter(mAdapter); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 

    toolbar = (Toolbar) findViewById(R.id.app_bar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 

} 

适配器代码:

public class InfAdapter extends RecyclerView.Adapter<InfAdapter.MyViewHolder> { 

    private final Context context; 
    private List<Information> data = Collections.emptyList(); 


    public InfAdapter(Context context, List<Information> data){ 
     this.data = data; 
     this.context = context; 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_row, parent, false); 
     return new MyViewHolder(v); 
    } 


    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 

     Information current = data.get(position); 
     holder.title.setText(current.title); 
     holder.icon.setImageResource(current.iconid); 
    } 


    @Override 
    public int getItemCount() { 
     return data.size(); 
    } 

    class MyViewHolder extends RecyclerView.ViewHolder{ 
    TextView title; 
    ImageView icon; 

    public MyViewHolder(View itemView) { 

     super(itemView); 
     title = (TextView) itemView.findViewById(R.id.listText); 
     icon = (ImageView) itemView.findViewById(R.id.listIcon); 

     } 
    } 
} 

了什么可能出了错?

+0

可能重复[什么是空指针异常,以及如何解决它?](http://*.com/questions/218384/what-is-a-null-pointer-exception-and-how -do-i-fix-it) – Simon 2015-02-17 21:02:23

+1

你是否也可以发布你的布局代码....你的布局代码是否有像这样的 Psypher 2015-02-17 21:11:39

+1

@Ranjith是,包括 – Ardi 2015-02-17 21:59:20

由于@StenSoft在评论中所指出的问题是 setContentView (R.layout.activity_main_appbar);因为错误的活动布局的内容,而不是 setContentView (R.layout.activity_main);

+0

像Charm一样工作! – 2018-01-17 09:25:17

在我的情况下,这个错误出现,因为我没有在我的活动之一创建RecyclerView

检查您的活动布局或片段布局。