2017-09-18 8 views
0

저는 RecyclerView에 대한 자습서를 따르려고합니다. 하지만 난 완료하고 나는이 메시지를 가지고 내 코드를 테스트 할 때 : 나는 초심자이고 나는이 메시지를 이해하지 못하는Recycler보기를 사용하는 데 문제가 있습니다.

09-18 16:01:03.486 2521-2521/com.example.gon.recycleview E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.example.gon.recycleview, PID: 2521 
                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gon.recycleview/com.example.gon.recycleview.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)' 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.setHasFixedSize(boolean)' on a null object reference 
                      at com.example.gon.recycleview.MainActivity.onCreate(MainActivity.java:22) 
                      at android.app.Activity.performCreate(Activity.java:6237) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                      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)  

합니다. 내가 내 setHasFixedSize() 함수

public class MainActivity extends Activity { 

private RecyclerView mRecyclerView; 
private RecyclerView.Adapter mAdapter; 
private RecyclerView.LayoutManager mLayoutManager; 
private String[] myDataset = {"Lundi", "Mardi", "Mercredi", "Vendredi", "Samedi", "Dimanche"}; 

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

    mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); 
    mRecyclerView.setHasFixedSize(true); 
    mLayoutManager=new LinearLayoutManager(this); 
    mRecyclerView.setLayoutManager(mLayoutManager); 
    mAdapter=new RecyclerViewAdapter(myDataset); 
    mRecyclerView.setAdapter(mAdapter); 

} 

}이 코드에 오류가있는 것 같습니다

당신이 나를 잘못 이해하는 기쁘게 할 수 있습니다. my_recycler_view이를 포함 내보기입니다 :

<android.support.v7.widget.RecyclerView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android.id="@+id/my_recycler_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

나는 내 목록의 라인을 설명 타 볼 수 있습니다. 마지막으로 RecyclerViewAdapter라는 클래스가 있습니다. 이 대신에

android.id="@+id/my_recycler_view" 

변화를 :

당신이 android.id 대신 android:id의 작성했습니다 때문에
android:id="@+id/my_recycler_view" 

,보기가 점점되지

당신의 XML 레이아웃에서

답변

3

,이 라인을 가지고 이드. ID가 없기 때문에 findViewById()을 찾을 수 없으므로 null (오류가 발생합니다)이 반환됩니다.

+0

이것은 그의 충돌 소스가 될 수 없습니다. XML에 의미 론적 문제가있을 때 컴파일되거나 실행되지 않습니다. – Empty2k12

+0

@ Empty2k12 직접 해보기. 그것은 완벽하게 실행됩니다. 'android.id'는 비 namespaced 속성이며'@ + id'로 시작하는 값을 가지고 있기 때문에'my_recycler_view' id는 잘 생성됩니다. –

+0

감사합니다. 나는 내 활동에 관한 이슈를 조사하고 있었고, 내 생각에 결코 그렇게 생각하지 않았다. 고마워 – Mohamed

관련 문제