-1

I want to create list view in alert dialog. I pass not empty strings to ArrayAdapter but i receive error "java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference"

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    PackageManager pm = getPackageManager();
    ApplicationInfo app = applist.get(position);
    ArrayAdapter arrayAdapter = null;

    try{
        AlertDialog.Builder builder = new AlertDialog.Builder(ViewAppsPermissions.this);
        final View mView = getLayoutInflater().inflate(R.layout.popup_layout,null);
        AlertDialog dialog = builder.create();
        builder.setView(mView);
        Button button = (Button) mView.findViewById(R.id.button7);
        ListView listView = (ListView) mView.findViewById(R.id.textView);
        try {

            PackageInfo packageInfo = pm.getPackageInfo(app.packageName, PackageManager.GET_PERMISSIONS);
            String[] requestedPermissions = packageInfo.requestedPermissions;
            System.out.println("lenght :" + requestedPermissions.length);
            arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, requestedPermissions);

        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }


        listView.setAdapter(arrayAdapter);
        dialog.show();
    } catch(ActivityNotFoundException e) {
        e.printStackTrace();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/button7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Close" />

</LinearLayout>

Stack Trace :

W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
W/System.err:     at com.example.admin.sap.displayScreens.ViewAppsPermissions.onListItemClick(ViewAppsPermissions.java:75)
W/System.err:     at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
W/System.err:     at android.widget.AdapterView.performItemClick(AdapterView.java:334)
W/System.err:     at android.widget.AbsListView.performItemClick(AbsListView.java:1531)
W/System.err:     at android.widget.AbsListView$PerformClick.run(AbsListView.java:3667)
W/System.err:     at android.widget.AbsListView$3.run(AbsListView.java:5590)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:145)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5942)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
V/ActivityThread: updateVisibility : ActivityRecord{75ac80f token=android.os.BinderProxy@239ba43c {com.example.admin.sap/com.example.admin.sap.displayScreens.ViewAppsPermissions}} show : true
  • This is hardly a duplicate. It's an Android-specific issue and not addressed in the post linked as duplicate. – Dennis K May 16 '18 at 21:37

1 Answers1

1

Change this

ListView listView = (ListView) mView.findViewById(R.id.textView);

to this:

ListView listView = (ListView) mView.findViewById(R.id.listView);
Levi Moreira
  • 11,917
  • 4
  • 32
  • 46
Dennis K
  • 1,828
  • 1
  • 16
  • 27