重複の可能性:
数値形式の例外を処理する方法
$22,000,420 のような形式で数字を入力したいのですが、数字を消去すると数字の書式設定の例外が表示されます。
私のxmlファイルは次のとおりです:-
<EditText
android:id="@+id/editAmountFinanced"
style="@style/EditTextInputFinance"
android:layout_below="@+id/txtCreateNewAccount"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:ems="10"
android:hint="AMOUNT FINANCED"
android:digits="0123456789.,$"
android:padding="10dp" />
私のAndroid Javaコードは次のとおりです:-
editAmountFinanced = (EditText)findViewById(R.id.editAmountFinanced);
editAmountFinanced.addTextChangedListener(new TextWatcher() {
boolean isEdiging;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if(isEdiging) return;
isEdiging = true;
String str = s.toString().replaceAll( "[^\\d]", "" );
double s1 = Double.parseDouble(str);
NumberFormat nf2 = NumberFormat.getInstance(Locale.ENGLISH);
((DecimalFormat)nf2).applyPattern("$ ###,###.###");
try {
s.replace(0, s.length(), nf2.format(s1));
isEdiging = false;
} catch(NumberFormatException e) {
}
}
});
ありがとう