2014-01-29 36 views
-1

我想開始此活動,但我不知道爲什麼我現在不能開始! 以前, 我能夠開始活動.. 我不知道我的代碼有什麼問題,有人可以幫我嗎? 感謝您當試圖開始新的意圖時強行關閉

01-29 21:20:48.431: E/AndroidRuntime(20165): FATAL EXCEPTION: main 
01-29 21:20:48.431: E/AndroidRuntime(20165): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fuellogproject/com.example.fuellogproject.summary}: java.lang.NullPointerException 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.ActivityThread.access$700(ActivityThread.java:140) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.os.Looper.loop(Looper.java:137) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.ActivityThread.main(ActivityThread.java:4921) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at java.lang.reflect.Method.invokeNative(Native Method) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at java.lang.reflect.Method.invoke(Method.java:511) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at dalvik.system.NativeStart.main(Native Method) 
01-29 21:20:48.431: E/AndroidRuntime(20165): Caused by: java.lang.NullPointerException 
01-29 21:20:48.431: E/AndroidRuntime(20165): at com.example.fuellogproject.summary.onCreate(summary.java:107) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.Activity.performCreate(Activity.java:5188) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
01-29 21:20:48.431: E/AndroidRuntime(20165): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) 
01-29 21:20:48.431: E/AndroidRuntime(20165): ... 11 more 

我的代碼

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.summary); 

     monthDate = (EditText)findViewById(R.id.month); 
     avgPrice = (TextView)findViewById(R.id.resultFC); 


      // First we need to make contact with the database we have created using 
      // the DbHelper class 
      AndroidOpenDbHelper openHelperClass = new AndroidOpenDbHelper(this); 

      // Then we need to get a readable database 
      SQLiteDatabase sqliteDatabase = openHelperClass.getReadableDatabase(); 

      // We need a a guy to read the database query. Cursor interface will do 
      // it for us 
      // (String table, String[] columns, String selection, String[] 
      // selectionArgs, String groupBy, String having, String orderBy) 
      Cursor cursor = sqliteDatabase.query(
        AndroidOpenDbHelper.TABLE_NAME_LOG, null, null, null, null, 
        null, null); 
      // Above given query, read all the columns and fields of the table 

      startManagingCursor(cursor); 

      // Cursor object read all the fields. So we make sure to check it will 
      // not miss any by looping through a while loop 
      while (cursor.moveToNext()) { 
       // In one loop, cursor read one undergraduate all details 
       // Assume, we also need to see all the details of each and every 
       // undergraduate 
       // What we have to do is in each loop, read all the values, pass 
       // them to the POJO class 
       // and create a ArrayList of undergraduates 
       String id = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_ROWID)); 

      final String date = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_DATE)); 
      String price = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_PRICE)); 
       String pump = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_FUEL)); 
       String cost = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_COST)); 
       String odm = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_ODM)); 
       String preodm = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_PREODM)); 
       String fcon = cursor.getString(cursor 
         .getColumnIndex(AndroidOpenDbHelper.KEY_CON)); 


       // If you don't close the database, you will get an error 
      sqliteDatabase.close(); 
       Log.i("FuelLog", "dataBundle " + date); 



     monthDate.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // showDialog(DATE_DIALOG_ID); 
       DialogFragment newFragment = new DatePickerFragment(); 
       newFragment.show(getFragmentManager(), "datePicker"); 
      } 
     }); 





doneButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 



if (monthDate.getText().toString().equals(date.subSequence(3,9).toString())) 

       { 
    Intent intent=new Intent(getApplicationContext(),about.class); 
    startActivity(intent); 
    Log.d("ELSEMONTHDATE","date : "+ monthDate.getText().toString()); 
    Log.d("ELSEBUNDLEDATE","date : "+ (date.subSequence(3,9).toString())); 


       } 
       else 
       { 
        Intent intent=new Intent(getApplicationContext(),about.class); 
        startActivity(intent); 
        Log.d("ELSEMONTHDATE","date : "+ monthDate.getText().toString()); 
        Log.d("ELSEBUNDLEDATE","date : "+ (date.subSequence(3,9).toString())); 
       } 






      } 
     }); 
} 

    } 
+1

是什麼線107'summary.java' – Raghunandan

+0

我想你R電話同一類的,如果 - else條件... –

+0

doneButton.setOnClickListener(新View.OnClickListener(){ – Chloe

回答

2

你說行107是

doneButton.setOnClickListener(new View.OnClickListener() { 

您還沒有初始化doneButton任何地方

doneButton = (Button) findViewById(R.id.your buttonid); 

doneButton爲空。您需要確保正確初始化doneButton