0
내 안드로이드 응용 프로그램의 런타임 동안이 특정 오류를 얻고에서 재활용보기를 설정하는 동안 : 나는 안드로이드 재활용 뷰와 어댑터 설명서를 확인하신 후널 포인터 예외 조각
java.lang.NullPointerException: Attempt to invoke virtual method`'void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)' on a null object reference
at com.monkeyengineer.project.MyFragment.onCreateView(MyFragment.java:36)
그러나 그것은 나에게 도움이되지 않는다 왜 이것이 부서 지는지.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.monkeyengineer.project.MyFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" />
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:height="45dp"
android:drawableLeft="@android:drawable/ic_input_add"
android:drawableStart="@android:drawable/ic_input_add"
android:drawablePadding="8dp"
android:gravity="start|center"
android:padding="8dp"
android:text="Add stuff."
android:textStyle="bold"
android:layout_gravity="center_horizontal"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
: 여기
public class MyFragment extends Fragment {
private List<Project> data;
private RecyclerView recyclerView;
private TextView textView;
private boolean mIsRecyclerViewVisible = true;
public MyFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View mView = inflater.inflate(R.layout.my_fragment, container, false);
textView = (TextView) container.findViewById(R.id.text_view);
recyclerView = (RecyclerView) container.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getContext());
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(mLayoutManager);
Adapter adapter = new ProjectsAdapter(data);
recyclerView.setAdapter(adapter);
if (data != null) {
textView.setVisibility(View.INVISIBLE);
mIsRecyclerViewVisible = true;
} else {
recyclerView.setVisibility(View.INVISIBLE);
mIsRecyclerViewVisible = false;
}
return mView;
}
@Override
public void onStart() {
super.onStart();
if (mIsRecyclerViewVisible) {
recyclerView.setVisibility(View.VISIBLE);
textView.setVisibility(View.INVISIBLE);
} else {
recyclerView.setVisibility(View.INVISIBLE);
textView.setVisibility(View.VISIBLE);
}
}
@Override
public void onStop() {
super.onStop();
mIsRecyclerViewVisible = data != null;
}
}
내 조각 레이아웃입니다 : 여기
은 (import 문은 간결함을 위해 생략) 내가 컨테이너보기에
findViewById
메소드를 호출하고 내 조각 내 코드입니다
그렇다면 왜 null 포인터 예외가 발생합니까? 리사이클 러 뷰 객체가 null 값으로 할당되었지만 왜 그런지 생각할 수 없기 때문입니다.
감사합니다.
@TomFinet이 정보가 도움이 될 경우 제 답변을 수락하십시오. :) – SripadRaj
고마워, 그건 그렇게 분명한 실수였다. –