私は、ユーザーから入力されたテキストを受け取り、それらをカスタムリストアイテムのテキストビューに配置する予定のアプリケーションを構築しています。ユーザーはAlertDialog
にテキストを入力しますが、AlertDialog
が終了すると(破棄されると)、入力されたテキストはすべて破棄され、NullPointerException
というエラーが表示されます。アラートダイアログからユーザー入力を保存するにはどうすればよいですか?
これは、ダイアログの作成およびデータ検索を処理するコードです:あなたの初期化と
public class AssignmentActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_assignment);
...
FloatingActionButton assignmentAddButton = (FloatingActionButton) findViewById(R.id.assignment_add_button);
assignmentAddButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editCourseInfoDialog();
}
});
}
private void editCourseInfoDialog() {
LayoutInflater inflater = LayoutInflater.from(AssignmentActivity.this);
View dialogLayout = inflater.inflate(R.layout.assignment_edit_dialog, null);
AlertDialog.Builder dialog = new AlertDialog.Builder(AssignmentActivity.this);
dialog.setView(dialogLayout);
final TextView name = (TextView) dialogLayout.findViewById(R.id.assignmentNameView);
final TextView mark = (TextView) dialogLayout.findViewById(R.id.assignmentMarkView);
final TextView overallMark = (TextView) dialogLayout.findViewById(R.id.assignmentOverallMarkView);
final TextView weight = (TextView) dialogLayout.findViewById(R.id.assignmentWeightView);
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
assignment.setName(String.valueOf(name.getText()));
assignment.setMark(Double.valueOf(mark.getText() + ""));
assignment.setMarkOutOf(Double.valueOf(overallMark.getText() + ""));
assignment.setPercentage(Double.valueOf(weight.getText() + ""));
assignmentAdapter.notifyDataSetChanged();
dialog.dismiss();
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialog.show();
}
}
のように最初に初期化する必要があります。 SharedPreferenceの異なるクラス保存入力で値を使用している場合。 – Kunu
TextViewsはカスタムAlertDialog xmlファイルにフックされます。 'AssignmentActivity.java'ファイルの' activity_assignment.xml'ではありません。 –
小さな問題のコードが多すぎます。関連するコードを投稿する方が良い。 – Kunu