1
클릭하면 대화 상자가 나타나고 해당 대화 상자의 데이터를 읽습니다. 대화 상자에는 데이터에 대해서만 EditText가 있습니다. 내 데이터는 숫자입니다.버튼에서 데이터를 수신 할 수 없음 리스너
Button mSaveButton = (Button) findViewById(R.id.saveButton);
mSaveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder mBuilder = new AlertDialog.Builder(ReportActivity.this);
View mView = getLayoutInflater().inflate(R.layout.dialog_for_percent , null);
EditText savingsDialog = (EditText) mView.findViewById(R.id.percentEditText);
mBuilder.setView(mView)
.setPositiveButton(R.string.done, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Context context = getApplicationContext();
Toast.makeText(context, "Done", Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog dialog = mBuilder.create();
dialog.show();
//if (savingsDialog.getText().toString().length() > 0) { I tried this if, but I receive empty data
SharedPreferences savings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = savings.edit();
editor.putString("percent", savingsDialog.getText().toString());
editor.commit();
updateSavingsView(Integer.parseInt(savingsDialog.getText().toString()));// here I want to put my data in method which update my TextView
//}
}
});
방법 (필요한 경우)
public void updateSavingsView(int savings){
TextView savingsTextView = (TextView) findViewById(R.id.saverTextView);
savingsTextView.setText("Save " + savings + "% per month");
TextView monthlySavings = (TextView) findViewById(R.id.savingsMoney);
if(savings == 0 || Integer.parseInt(income.getText().toString()) == 0) {
monthlySavings.setText("0");
}
else{
monthlySavings.setText(Integer.toString((Integer.parseInt(income.getText().toString()) * savings)/100));
}
그래서 문제는 내가 if 문없이 프로그램을 실행할 때 오류 java.lang.NumberFormatException의를 가지고있다 : 여기 내 코드에 대한 입력 문자열 : "". 그것은 빈 문자열을 읽고 그것을 파싱하기 때문입니다. 그런 다음이 문제를 피하기 위해 if 문을 추가하지만 작동하지 않습니다. 그리고 내 질문은. 이러한 문제를 피하고 올바른 데이터를 저장하려면이 수신기를 어떻게 다시 작성할 수 있습니까?
내 글고 savingsDialog이 밖에 beacuse 수없는 내부 코드를 넣고 그것은 나에게 내가 최종 – Valgaal
는 다음 최종 .. 아무 문제가 선언되지 선언해야 오류가 있습니다. 그것을 할 –
그래, 작동합니다. 나는 iw가 그렇게 분명한 대답이되지 않을 것이라고 생각했다. 나는 결승전을 피한다. 그러나 여기에는 오직 한 가지 길 밖에 없다. – Valgaal