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文を追加してこの問題を回避しますが、動作しません。 私の質問は。これらの問題を回避し、正しいデータを保存するために、このリスナーをどのように書き直すことができますか?
私は私のEditText savingsDialogが外にあるbeacuseことができないの内側にあなたのコードを入れて、それは私に私はそれが最終的 – Valgaal
はそれ最終的に...何の問題を宣言しない宣言しなければならないエラーが発生します。それは –
うん、それは動作します。私はiwがあまりにも明白な答えではないと思った。私は決勝を避けます..しかし、ここには1つしかありません – Valgaal