내 안드로이드 응용 프로그램에서 CardView를 사용하려고합니다. 두 번째 자습서를 따르고 있으며 같은 방법으로 동일한 오류가 발생합니다. 내가 뭘 잘못하고 있다고 지적 할 수 있니?RecyclerView.setLayoutManager의 NPE
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
EventObject[] objects = (EventObject[]) getArguments().getSerializable(OBJECTS_KEY);
eventsRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
eventsRecyclerView.setAdapter(new EventsAdapter(objects));
}
EventsAdapter.java :
package co.scuer.licznik;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class EventsAdapter extends RecyclerView.Adapter<EventsAdapter.EventsViewHolder> {
private final EventObject[] events;
public EventsAdapter(EventObject[] events) {
this.events = events;
}
@Override
public EventsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_event, parent, false);
return new EventsViewHolder(view);
}
@Override
public void onBindViewHolder(EventsViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return events.length;
}
class EventsViewHolder extends RecyclerView.ViewHolder {
public EventsViewHolder(View itemView) {
super(itemView);
}
}
}
여기
java.lang.RuntimeException: Unable to start activity ComponentInfo{co.scuer.licznik/co.scuer.licznik.EventsActivity}: 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
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: 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
at co.scuer.licznik.EventsFragment.onViewCreated(EventsFragment.java:46)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:988)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148)
at android.app.BackStackRecord.run(BackStackRecord.java:793)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535)
at android.app.FragmentController.execPendingActions(FragmentController.java:325)
at android.app.Activity.performStart(Activity.java:6252)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
은 EventsFragment 중 한 방법이다 : 여기
은 에러 코드의그리고 item_event.xml는 :
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/itemImageView"
android:background="@android:color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/itemTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.CardView>
내가 얻을이 문제를 해결할 수없는 것. 더 많은 코드를 게시해야하는지 알려주십시오.
편집 :
나는 onCreateView 오버라이드 (override) 할 :
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_events, container, false);
ButterKnife.bind(this, view);
return view;
}
같은'보기보기를 할 필요 = LayoutInflater.from은 (parent.getContext는()) ...'내부 당신 조각 및 초기화'recyclerview'에' –
당신은 onCreateView을 무시 했 onViewCreated'? – Rahul