Search code examples
androidlistviewlistadapter

Cant View in my custom listview


This is my MainActivity.class I want to view from database but Don't know why this code is giving me nullpointerexception I tried but its not getting where I am wrong

//Solved Myself

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    try{
    handler = new DataHandler(this);
    handler.open();
    c = handler.getAllMainData();   
    c.moveToFirst();
    while(!c.isAfterLast()){
            CampaignId.add(c.getInt(c.getColumnIndex("campaign_id"))-1, null);
            CampaignName.add(c.getString(c.getColumnIndex("campaign_name")-1));
            Message.add(c.getString(c.getColumnIndex("message")-1));
            StartDate.add(c.getString(c.getColumnIndex("start_date")-1));
            Repeat.add(c.getString(c.getColumnIndex("repeat")-1));
            c.moveToNext();
    }
        handler.close();

    }
    catch(Exception e){
        Log.d("Error",e.toString());
    }
    //View Data
    try{
        ListView lv = (ListView) findViewById(R.id.LVMain);ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
        for(int i=0;i<CampaignId.size();i++)
        {

            HashMap<String, String> map = new HashMap<String, String>();
            map.put("CampaignName",CampaignName.get(i));
            map.put("Repeat",Repeat.get(i));
            map.put("StartDate",StartDate.get(i));
            mylist.add(map);
        }
            SimpleAdapter mSchedule = new SimpleAdapter(MainActivity.this, mylist, R.layout.main_listview, new String[] {"CampaignName","Repeat","StartDate"}, new int[] {R.id.viewCampaignName,R.id.viewRepeat,R.id.viewLastSent});
            lv.setAdapter(mSchedule);
        }catch(Exception e){
            e.printStackTrace();
        }

    }

This is my logthe 80th line is my lv.setAdapter(mSchedule);

08-09 02:23:49.897: W/System.err(7012): java.lang.NullPointerException
08-09 02:23:49.897: W/System.err(7012):     at com.sarita.scheduler.MainActivity.onCreate(MainActivity.java:80)
08-09 02:23:49.897: W/System.err(7012):     at android.app.Activity.performCreate(Activity.java:5231)
08-09 02:23:49.907: W/System.err(7012):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-09 02:23:49.907: W/System.err(7012):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
08-09 02:23:49.907: W/System.err(7012):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
08-09 02:23:49.907: W/System.err(7012):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
08-09 02:23:49.907: W/System.err(7012):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
08-09 02:23:49.907: W/System.err(7012):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-09 02:23:49.917: W/System.err(7012):     at android.os.Looper.loop(Looper.java:136)
08-09 02:23:49.917: W/System.err(7012):     at android.app.ActivityThread.main(ActivityThread.java:5017)
08-09 02:23:49.917: W/System.err(7012):     at java.lang.reflect.Method.invokeNative(Native Method)
08-09 02:23:49.917: W/System.err(7012):     at java.lang.reflect.Method.invoke(Method.java:515)
08-09 02:23:49.927: W/System.err(7012):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-09 02:23:49.927: W/System.err(7012):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-09 02:23:49.927: W/System.err(7012):     at dalvik.system.NativeStart.main(Native Method)

Solution

  • this line of code

    setContentView(R.layout.activity_main);
    

    which is at end of the code block should be immediately after

    super.onCreate(savedInstanceState); 
    

    code, as

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);