(可能是ArrayAdapter)/ /' java.lang.String java.lang.Object.toString()'在空对象引用

时间:2016-07-28 01:20:27

标签: java android android-arrayadapter

我是初学者,也是我的第一个应用。我正在尝试做一个待办事项列表app.Now,我卡住了,我无法找到我的错误。有人可以帮我解决这个问题吗?

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:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:401)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.AbsListView.obtainView(AbsListView.java:2346)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.ListView.measureHeightOfChildren(ListView.java:1280)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.ListView.onMeasure(ListView.java:1188)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:715)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:668)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:735)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at com.android.internal.policy.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2643)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.View.measure(View.java:18788)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6013)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.Choreographer $ CallbackRecord.run(Choreographer.java:858)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.Choreographer.doCallbacks(Choreographer.java:670)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.Choreographer.doFrame(Choreographer.java:606)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:844)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.os.Handler.handleCallback(Handler.java:739)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.os.Handler.dispatchMessage(Handler.java:95)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.os.Looper.loop(Looper.java:148)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at android.app.ActivityThread.main(ActivityThread.java:5417)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at java.lang.reflect.Method.invoke(Native Method)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   07-28 04:56:15.284 27235-27235 / com.lidenoapp.ajanda E / AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我读了其他关于NullPointerExpection的问题,但我无法找到可以帮助我的东西。非常感谢...

1 个答案:

答案 0 :(得分:0)

当你使用String date = String.valueOf(dateEditText.getText())时要小心;如果你把null作为函数的输入,它将崩溃。请执行以下操作

try {
            String date = String.valueOf(dateEditText.getText());
        } catch (Exception e) {
            e.printStackTrace();
        }