在@raja的帮助下,我发现我需要将数据更新到列表中。推荐是更改Dialog文件的行:
package com.example.classorganizer;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
class EditListItemDialog extends Dialog implements View.OnClickListener {
private View editText;
public EditListItemDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_text_dialog);//here is your xml with EditText and 'Ok' and 'Cancel' buttons
View btnOk = findViewById(R.id.button_ok);
editText = findViewById(R.id.edit_text);
btnOk.setOnClickListener(this);
}
@Override
public void onClick(View v) {
fragment_monday.add(((TextView) editText).getText().toString());//here is your updated(or not updated) text
dismiss();
}
}
正是在onClick方法中将fragment_monday.add添加到该行。 不幸的是,当我添加fragment_monday时,错误无法解决或者不是一个字段弹出。
我无法使用对话框文件更新列表中的数据,我相信我无法正确调用列表。 如有必要,我可以发布其他代码。任何帮助将不胜感激。
这是应用程序在按下对话框文件中的确认按钮时崩溃的最新logcat:
04-20 19:18:06.049: E/AndroidRuntime(1468): FATAL EXCEPTION: main
04-20 19:18:06.049: E/AndroidRuntime(1468): java.lang.NullPointerException
04-20 19:18:06.049: E/AndroidRuntime(1468): at com.example.classorganizer.EditListItemDialog.onClick(EditListItemDialog.java:37)
04-20 19:18:06.049: E/AndroidRuntime(1468): at android.view.View.performClick(View.java:2485)
04-20 19:18:06.049: E/AndroidRuntime(1468): at android.view.View$PerformClick.run(View.java:9080)
04-20 19:18:06.049: E/AndroidRuntime(1468): at android.os.Handler.handleCallback(Handler.java:587)
04-20 19:18:06.049: E/AndroidRuntime(1468): at android.os.Handler.dispatchMessage(Handler.java:92)
04-20 19:18:06.049: E/AndroidRuntime(1468): at android.os.Looper.loop(Looper.java:130)
04-20 19:18:06.049: E/AndroidRuntime(1468): at android.app.ActivityThread.main(ActivityThread.java:3687)
04-20 19:18:06.049: E/AndroidRuntime(1468): at java.lang.reflect.Method.invokeNative(Native Method)
04-20 19:18:06.049: E/AndroidRuntime(1468): at java.lang.reflect.Method.invoke(Method.java:507)
04-20 19:18:06.049: E/AndroidRuntime(1468): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
04-20 19:18:06.049: E/AndroidRuntime(1468): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
04-20 19:18:06.049: E/AndroidRuntime(1468): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
问题是你的Dialog不知道fragment_monday
例如,您可以通过将列表fragment_monday
作为参数传递给构造函数并声明字段fragment_monday
来解决此问题。假设它是一个字符串列表:
private List<String> fragment_monday;
public EditListItemDialog(Context context, List<String> fragment_monday) {
super(context);
this.fragment_monday = fragment_monday;
}
旁注:我会重命名“fragment_monday”,因为它违反了命名约定