すべて-私はしばらくこれに苦労していて、この種のことに関する他のすべての質問を見てきましたが、私はそれを理解できません:私は通貨用にフォーマットする必要があるedttextフィールドを持っています。これに関連する他のすべての質問でコードを試しましたが、何を試しても機能しません。これが私のコードです:
EditText text = (EditText)findViewById(R.id.edit_bill);
text.setRawInputType(Configuration.KEYBOARD_12KEY);
text.addTextChangedListener(new TextWatcher(){
EditText text = (EditText)findViewById(R.id.edit_bill);
DecimalFormat dec = new DecimalFormat("0.00");
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(!s.toString().matches("^\\$(\\d{1,3}(\\,\\d{3})*|(\\d+))(\\.\\d{2})?$"))
{
String userInput= ""+s.toString().replaceAll("[^\\d]", "");
if (userInput.length() > 0) {
Float in=Float.parseFloat(userInput);
float percen = in/100;
text.setText("$"+dec.format(percen));
text.setSelection(text.getText().length());
}
}
}
});
このコードはonClickメソッドの内部にあります。それは違いを生みますか(たとえば、テキストはユーザーがボタンをクリックしたときにのみフォーマットされます)?前もって感謝します!