我是初学者,也是我的第一个应用。我正在尝试做一个待办事项列表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.measureChildHorizontal(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
的问题,但我无法找到可以帮助我的东西。非常感谢...
答案 0 :(得分:0)
当你使用String date = String.valueOf(dateEditText.getText())时要小心;如果你把null作为函数的输入,它将崩溃。请执行以下操作
try {
String date = String.valueOf(dateEditText.getText());
} catch (Exception e) {
e.printStackTrace();
}