这是我想要从数据库查看的MainActivity.class但不知道为什么这段代码给了我nullpointerexception我试过但它没有得到我错的地方
//解决了我自己
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();
}
}
这是我的第80行是我的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)
答案 0 :(得分:1)
这行代码
setContentView(R.layout.activity_main);
位于代码块的末尾应该紧跟在
之后super.onCreate(savedInstanceState);
代码,如
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);