2016-07-28 16 views
-2

Ich bin ein Anfänger und es ist auch meine erste App. Ich versuche, eine Aufgabenliste App zu tun. Jetzt stecke ich fest und ich kann meinen Fehler nicht finden. Kann mir jemand dabei helfen?(ArrayAdapter vielleicht)// 'java.lang.String java.lang.Object.toString()' auf eine Null-Objekt-Referenz

EDITED

asilajandaActivity.java

public class asilajandaActivity extends AppCompatActivity { 
private TaskDbHelper mHelper; 
private ListView mTaskListView; 
private ArrayAdapter<String> mAdapter; 
private ArrayAdapter<String> mAdapter2; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setTitle(R.string.title_activity_asilajanda); 
    setContentView(R.layout.activity_asilajanda); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    mHelper = new TaskDbHelper(this); 
    mTaskListView = (ListView) findViewById(R.id.list_todo); 

    updateUI();updateUI2(); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 


    switch (item.getItemId()) { 
     case R.id.action_add_task: 



      final Dialog dialog= new Dialog(this); 


      dialog.setContentView(R.layout.dialod_ajanda); 
      dialog.setTitle("Etkinlik Ekle"); 
      final EditText dateEditText=(EditText)dialog.findViewById(R.id.editText); 
      final EditText taskEditText =(EditText)dialog.findViewById(R.id.Text); 

      Button kaydet= (Button) dialog.findViewById(R.id.button4); 
      Button vazgec=(Button) dialog.findViewById(R.id.button5); 



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

        try { 
         SQLiteDatabase db= mHelper.getWritableDatabase(); 
         ContentValues values1 = new ContentValues(); 
         String date = String.valueOf(dateEditText.getText()); 
         values1.put(TaskContract.TaskEntry.COL_TASK_tar, date); 

         db.insertWithOnConflict(TaskContract.TaskEntry.TABLE, null, values1, SQLiteDatabase.CONFLICT_REPLACE); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
         try { 
          SQLiteDatabase db= mHelper.getWritableDatabase(); 
          ContentValues values = new ContentValues(); 
          String date = String.valueOf(taskEditText.getText()); 
          values.put(TaskContract.TaskEntry.COL_TASK_TITLE, date); 

          db.insertWithOnConflict(TaskContract.TaskEntry.TABLE, null, values, SQLiteDatabase.CONFLICT_REPLACE); 
         } catch (Exception e1) { 
          e1.printStackTrace(); 
         } 
        db.close(); 
        updateUI();updateUI2(); 
        dialog.dismiss(); 

       } 

      }); 

      vazgec.setOnClickListener(new View.OnClickListener(){ 
       @Override 
       public void onClick(View v){ 
        dialog.dismiss(); 
       } 
      }); 
        dialog.create(); 
      dialog.show(); 

      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 

} 


public void deleteTask(View view) { 
    View parent = (View) view.getParent(); 
    TextView taskTextView = (TextView) parent.findViewById(R.id.task_title); 
    TextView tarihtext =(TextView) parent.findViewById(R.id.tarih_text); 
    String task = String.valueOf(taskTextView.getText()); 
    String date = String.valueOf(tarihtext.getText()); 
    SQLiteDatabase db = mHelper.getWritableDatabase(); 
    db.delete(TaskContract.TaskEntry.TABLE, 
      TaskContract.TaskEntry.COL_TASK_TITLE + " = ?", 
      new String[]{task}); 
    db.delete(TaskContract.TaskEntry.TABLE, 
      TaskContract.TaskEntry.COL_TASK_tar, 
        new String[]{date}); 


    db.close(); 
    updateUI2(); 
    updateUI(); 
} 

private void updateUI() { 
    ArrayList<String> taskList = new ArrayList<>(); 
    SQLiteDatabase db = mHelper.getReadableDatabase(); 
    Cursor cursor = db.query(TaskContract.TaskEntry.TABLE, 
      new String[]{TaskContract.TaskEntry._ID, TaskContract.TaskEntry.COL_TASK_tar}, 
      null, null, null, null, null); 
    while (cursor.moveToNext()) { 
     int idx1 = cursor.getColumnIndex(TaskContract.TaskEntry.COL_TASK_tar); 
     taskList.add(cursor.getString(idx1)); 


    } 


    if (mAdapter == null) { 
     mAdapter = new ArrayAdapter<>(this, 
       R.layout.item_todo, 
       R.id.task_title, 
       taskList); 
     mTaskListView.setAdapter(mAdapter); 
    } else { 
     mAdapter.clear(); 
     mAdapter.addAll(taskList); 
     mAdapter.notifyDataSetChanged(); 
    } 

    cursor.close(); 
    db.close(); 
} 
private void updateUI2() { 
    ArrayList<String> dateList = new ArrayList<>(); 
    SQLiteDatabase db = mHelper.getReadableDatabase(); 
    Cursor cursor2 = db.query(TaskContract.TaskEntry.TABLE, 
      new String[]{TaskContract.TaskEntry._ID, TaskContract.TaskEntry.COL_TASK_TITLE}, 
      null, null, null, null, null); 
    while (cursor2.moveToNext()) { 
     int idx = cursor2.getColumnIndex(TaskContract.TaskEntry.COL_TASK_TITLE); 
     dateList.add(cursor2.getString(idx)); 


    } 


    if (mAdapter2 == null) { 
     mAdapter2 = new ArrayAdapter<>(this, 
       R.layout.item_todo, 
       R.id.task_title, 
       dateList); 
     mTaskListView.setAdapter(mAdapter2); 
    } else { 
     mAdapter2.clear(); 
     mAdapter2.addAll(dateList); 
     mAdapter2.notifyDataSetChanged(); 
    } 

    cursor2.close(); 
    db.close(); 
} 

Logcat

07-28 04:04:16.722 25806-25806/com.lidenoapp.ajanda E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 

07-28 04: 56: 27.235 bis 27.235 15,284/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.ArrayAdapter.createViewFro mResource (ArrayAdapter.java:401) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.ArrayAdapter.getView (ArrayAdapter.java:369) 07-28 04 : 56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.AbsListView.obtainView (AbsListView.java:2346) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.ListView.measureHeightOfChildren (ListView.java:1280) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.ListView.onMeasure (ListView.java:1188) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04:56 : 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.RelativeLayout.measureChildHori zontal (RelativeLayout.java:715) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.RelativeLayout.onMeasure (RelativeLayout.java:461) 07-28 04 : 56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5951) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.support.design.widget. CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:668) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:735) 07-28 04: 56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewGroup.measureChildWithMargins (ViewGroup .java: 5951) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.FrameLayout.onMeasure (FrameLayout.java:194) 07-28 04:56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:135) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp. ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5951) 07-28 04: 56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1465) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.LinearLayout.measureVertical (LinearLayout.java:748) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.LinearLayout.onMeasure (LinearLayout.java: 630) 07-28 04:56 : 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04: 56: 15.284 27235-27235/com.lidenoapp.ajanda E/Android Runtime: bei android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5951) April 07-28: 56: 27.235 bis 27.235 15,284/com.lidenoapp.ajanda E/Android Runtime: bei android.widget.FrameLayout .onMeasure (FrameLayout.java:194) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04: 56: 27.235 bis 27.235 15,284/com.lidenoapp.ajanda E/Android Runtime: bei android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5951) April 07-28: 56: 27.235 bis 27.235 15,284/com.lidenoapp. ajanda E/AndroidRuntime: bei android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1465) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.LinearLayout.measureVertical (LinearLayout.java:748) 07-28 04: 56: 15.28 4 27.235-27.235/com.lidenoapp.ajanda E/Android Runtime: bei android.widget.LinearLayout.onMeasure (LinearLayout.java:630) April 07-28: 56: 27.235 bis 27.235 15,284/com.lidenoapp.ajanda E/Android Runtime : at android.view.View.measure (View.java:18788) 07-28 04: 56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewGroup.measureChildWithMargins (ViewGroup.java : 5951) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.widget.FrameLayout.onMeasure (FrameLayout.java:194) 07-28 04: 56: 15,284 27235 -27235/com.lidenoapp.ajanda E/AndroidRuntime: um com.android.internal.policy.PhoneWindow $ DecorView.onMeasure (PhoneWindow.java:2643) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp. ajanda E/AndroidRuntime: bei android.view.View.measure (View.java:18788) 07-28 04: 56: 15.284 27235 -27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:2100) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: um android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1216) 07-28 04: 56: 15.284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1452) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1107) 07-28 04: 56: 15,284 27235-27235 /com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:6013) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: um android.view.Choreographer $ CallbackRecord.run (Choreographer.java:858) April 07-28: 56: 27.235 bis 27.235 15,284/com.lidenoapp.ajanda E/Android Runtime: bei android.view.Choreographer.doCallbacks (Choreographer.java:670) April 07-28: 56: 27.235 bis 27.235 15,284/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view.Choreographer.doFrame (Choreographer.java:606) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.view .Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:844) April 7-28: 56: 15,284 27.235-27.235/com.lidenoapp.ajanda E/Android Runtime: bei android.os.Handler.handleCallback (Handler.java:739) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.os.Handler.dispatchMessage (Handler.java:95) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.os.Looper.loop (Looper.java:148) 0 7-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei android.app.ActivityThread.main (ActivityThread.java:5417) 07-28 04: 56: 15,284 27235-27235/com .lidenoapp.ajanda E/AndroidRuntime: bei java.lang.reflect.Method.invoke (native Methode) 07-28 04: 56: 15,284 27235-27235/com.lidenoapp.ajanda E/AndroidRuntime: bei com.android.internal .os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) 07-28 April: 56: 15,284 27.235-27.235/com.lidenoapp.ajanda E/Android Runtime: bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)

ich lesen Sie andere Fragen, die über NullPointerExpection sind, aber ich kann nicht etwas finden, das mir helfen kann. Danke vielmals...

Antwort

0

Vorsicht bei der Verwendung von String date = String.valueOf (dateEditText.getText()); Wenn Sie eine Null als Eingabe für die Funktion eingeben, stürzt sie ab. Führen Sie die folgenden Schritte aus:

+0

oder Sie können TextUtils.isEmpty() ausführen, um zu überprüfen, ob die Zeichenfolgeneingabe gültig ist. – kggoh

+0

Ich habe es versucht und nicht funktioniert :((Ich bin mir nicht sicher, dass schreiben richtig) –

+0

dann müssen Sie herausfinden, welche Zeile macht Ihre App abstürzen.Update UI und UpdateUI2 entfernen, sehen, ob noch Absturz.Können Sie wissen, wie zu verwenden Debug-Modus, setzen Sie Haltepunkte, damit Sie wissen, welche Zeile Ihres Codes abstürzt.NullPointerExpection kann auf viele Arten geworfen werden, kann in String.ValueOf sein, können Sie eine Null-Liste für Ihren Adapter bereitstellen. – kggoh