ボタンを押したときにedittextを設置したdialogが開いてデータを入力するアプリを作っています。
エミュレータと実機テストをするとdialogを開いて一度データを入力したあとsaveボタンを押すのではなくcancelボタンを押すと
dialogは閉じるのですが、さらにもう一度dialogを開くと前にsaveしていないデータがそのまま入力されて残った形になっています。
cancelボタンを押した時に入力した途中のデータを無くす方法を教えて下さい。
環境 os mac
開発環境 Android studio 2.2.3
入力してcancelボタンを押して閉じてからまたdialogを開くとデータが入った状態になってしまう。
MainActivity.java内
int maxTextLength = 10; int maxNumLength = 1; InputFilter.LengthFilter lengthFilter = new InputFilter.LengthFilter(maxTextLength); InputFilter.LengthFilter lengthNumFilter = new InputFilter.LengthFilter(maxNumLength); final EditText editText = new EditText(MainActivity.this); editText.setFilters(new InputFilter[]{lengthFilter}); editText.setInputType(InputType.TYPE_CLASS_TEXT); final Editable lotText = editText.getText(); final EditText editNum = new EditText(MainActivity.this); editNum.setFilters(new InputFilter[]{lengthNumFilter}); editNum.setInputType(InputType.TYPE_CLASS_NUMBER); final Editable lotNum = editNum.getText(); addButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); if (alertDialog == null){ LinearLayout layout = new LinearLayout(MainActivity.this); layout.setOrientation(LinearLayout.VERTICAL); TextView conponentText = new TextView(MainActivity.this); conponentText.setText(R.string.add_data); layout.addView(conponentText); layout.addView(editText); TextView numText = new TextView(MainActivity.this); numText.setText(R.string.add_num); layout.addView(numText); layout.addView(editNum); alertDialogBuilder .setTitle(R.string.add_result) .setView(layout) .setPositiveButton(R.string.save_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (editText.length()==0||editNum.length()==0||lotNum.toString().equals("0")){ Toast.makeText(getApplicationContext(),R.string.setting_noting,Toast.LENGTH_SHORT).show(); }else { switch (tabNumber){ case 0: lot1Array.add(new DataType(lotText.toString(),lotNum.toString())); PrefManager.saveDataList(getApplicationContext(),"lot1Array",lot1Array); IndicateArray(lot1Array, tabNumber); break; case 1: lot2Array.add(new DataType(lotText.toString(),lotNum.toString())); PrefManager.saveDataList(getApplicationContext(),"lot2Array",lot2Array); IndicateArray(lot2Array,tabNumber); break; case 2: lot3Array.add(new DataType(lotText.toString(),lotNum.toString())); PrefManager.saveDataList(getApplicationContext(),"lot3Array",lot3Array); IndicateArray(lot3Array,tabNumber); break; } } } }) .setNegativeButton(R.string.cancel_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.d("UAA:cancel", ""); } }); alertDialog = alertDialogBuilder.create(); alertDialog.show(); } alertDialog.show(); } });
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/13 04:03
2017/10/13 04:52 編集
2017/10/13 09:42
2017/10/13 23:44