2015-07-12 4 views
-3

Я понятия не имею, что делать. Приложение продолжает сбой, и после нескольких часов поиска проблемы я ничего не получил. Кто-нибудь знает, где проблема?NullPointerException on setAdapter() function

Здесь все переменные I Объявленные:

SectionsPagerAdapter mSectionsPagerAdapter; 

ViewPager mViewPager; 
public ArrayList<String> numberList = new ArrayList<String>(); 
public ListView listOfItems; 

Это функция OnCreate:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    listOfItems = (ListView) findViewById(R.id.listView); 
    setContentView(R.layout.activity_main); 

    numberList.add("Hello"); 
    numberList.add("World"); 

    StableArrayAdapter listAdapter = new StableArrayAdapter(this, android.R.layout.simple_list_item_1, numberList); 

    listOfItems.setAdapter(listAdapter); 

    // Create the adapter that will return a fragment for each of the three 
    // primary sections of the activity. 
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

    // Set up the ViewPager with the sections adapter. 
    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 

} 

[EDIT] Это fragment_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment"> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listView" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/addButton" /> 

</RelativeLayout> 

Это также дает следующий журнал ошибок:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adnan.figura/com.adnan.figura.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
     at android.app.ActivityThread.access$900(ActivityThread.java:177) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:145) 
     at android.app.ActivityThread.main(ActivityThread.java:5942) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference 
     at com.adnan.figura.MainActivity.onCreate(MainActivity.java:63) 
     at android.app.Activity.performCreate(Activity.java:6289) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
        at android.app.ActivityThread.access$900(ActivityThread.java:177) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:145) 
        at android.app.ActivityThread.main(ActivityThread.java:5942) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183) 
+0

Можете ли вы разместить свои журналы ошибок и файл макета .xml? – Apoorva

+0

Отредактировано сообщение @Apoorva :) – Adnan

ответ

1

Вы должны сказать

setContentView(R.layout.activity_main); 

первый, а затем findViewById для ListView.

1

Вы должны инициализировать LISTOFITEMS ниже setContentView.

Должно быть так:

setContentView (R.layout.activity_main);

listOfItems = (ListView) findViewById (R.id.listView);

А также проверить, если R.id.listView существуют на вашем R.layout.activity_main

1

У вас есть основная ошибка, которая может быть решена за считанные секунды.

Пожалуйста, измените порядок этих двух линий.

setContentView(R.layout.activity_main); 
listOfItems = (ListView) findViewById(R.id.listView); 

Сначала вам нужно установить контент, затем будут созданы представления, а затем вы можете использовать findViewById().

Вы на самом деле пытаетесь найти виды, прежде чем создавать их. Надеюсь, я смогу решить вашу проблему и объяснить вам эту ошибку.

Смежные вопросы