我有一个edittext,我想用数字分组输入数字,但是当我键入数字时,它只显示4位数字,
我想要的是:1.234.567.890
但仅显示:1.234
该如何解决?这是我的代码:
txtrupiah.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
final String _charSeq = _param1.toString();
String input = _param1.toString();
if (!input.isEmpty())
{
input = input.replace(",", "");
DecimalFormat format = new DecimalFormat("#,###,###");
String newPrice = format.format(Double.parseDouble(input));
txtrupiah.removeTextChangedListener(this);
txtrupiah.setText(newPrice); txtrupiah.setSelection(newPrice.length());
txtrupiah.addTextChangedListener(this);
}
}
@Override
public void beforeTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
}
@Override
public void afterTextChanged(Editable _param1) {
}
});
答案 0 :(得分:0)
使用DecimalFormatSymbols()可以做到这一点,DecimalFormat可以用于四舍五入数字。如果要更改分隔符“。” ,您可以使用fs.setGroupingSeparator('。')
txtrupiah.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
final String _charSeq = _param1.toString();
String input = _param1.toString();
if (!input.isEmpty())
{
input = input.replace(",", "");
// Define new Format
DecimalFormat f = new DeciamlFormat("#,###");
DecimalFormatSymbols fs = new DecimalFormatSymbols(Locale.getDefault());
f.setDeciamlFormatSymbols(fs);
String newPrice = f.format(Double.parseDouble(input));
txtrupiah.removeTextChangedListener(this);
txtrupiah.setText(newPrice); txtrupiah.setSelection(newPrice.length());
txtrupiah.addTextChangedListener(this);
}
}
@Override
public void beforeTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
}
@Override
public void afterTextChanged(Editable _param1) {
}
});
答案 1 :(得分:0)
我正在使用素描软件,这是我的代码先生,
package com.my.kwitansi;
import android.app.*;
import android.os.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
import android.content.*;
import android.graphics.*;
import android.media.*;
import android.net.*;
import android.text.*;
import android.util.*;
import android.webkit.*;
import android.animation.*;
import android.view.animation.*;
import java.util.*;
import java.text.*;
import android.app.Activity;
import java.util.ArrayList;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.EditText;
import android.text.Editable;
import android.text.TextWatcher;
public class MainActivity extends Activity {
private double terbilang = 0;
private double angka = 0;
private String a = "";
private double b = 0;
private ArrayList<String> nama = new ArrayList<>();
private LinearLayout linemain;
private TextView textview1;
private LinearLayout linear1;
private LinearLayout linear4;
private LinearLayout linear3;
private LinearLayout linear2;
private TextView textview2;
private EditText txtnama;
private TextView textview6;
private TextView textview5;
private EditText txtrupiah;
private TextView textview4;
private EditText txtpembayaran;
private TextView textview3;
private TextView txtterbilang;
@Override
protected void onCreate(Bundle _savedInstanceState) {
super.onCreate(_savedInstanceState);
setContentView(R.layout.main);
initialize(_savedInstanceState);
initializeLogic();
}
private void initialize(Bundle _savedInstanceState) {
linemain = (LinearLayout) findViewById(R.id.linemain);
textview1 = (TextView) findViewById(R.id.textview1);
linear1 = (LinearLayout) findViewById(R.id.linear1);
linear4 = (LinearLayout) findViewById(R.id.linear4);
linear3 = (LinearLayout) findViewById(R.id.linear3);
linear2 = (LinearLayout) findViewById(R.id.linear2);
textview2 = (TextView) findViewById(R.id.textview2);
txtnama = (EditText) findViewById(R.id.txtnama);
textview6 = (TextView) findViewById(R.id.textview6);
textview5 = (TextView) findViewById(R.id.textview5);
txtrupiah = (EditText) findViewById(R.id.txtrupiah);
textview4 = (TextView) findViewById(R.id.textview4);
txtpembayaran = (EditText) findViewById(R.id.txtpembayaran);
textview3 = (TextView) findViewById(R.id.textview3);
txtterbilang = (TextView) findViewById(R.id.txtterbilang);
txtrupiah.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
final String _charSeq = _param1.toString();
String input = _param1.toString();
if (!input.isEmpty()) {
input = input.replace(",", "");
DecimalFormat f = new DecimalFormat("#,###"); DecimalFormatSymbols fs = new DecimalFormatSymbols(Locale.getDefault());
f.setDecimalFormatSymbols(fs); String newPrice = f.format(Double.parseDouble(input));
txtrupiah.removeTextChangedListener(this);
txtrupiah.setText(newPrice); txtrupiah.setSelection(newPrice.length()); txtrupiah.addTextChangedListener(this);
}
}
@Override
public void beforeTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
}
@Override
public void afterTextChanged(Editable _param1) {
}
});
}
private void initializeLogic() {
}
@Override
protected void onActivityResult(int _requestCode, int _resultCode, Intent _data) {
super.onActivityResult(_requestCode, _resultCode, _data);
switch (_requestCode) {
default:
break;
}
}
@Deprecated
public void showMessage(String _s) {
Toast.makeText(getApplicationContext(), _s, Toast.LENGTH_SHORT).show();
}
@Deprecated
public int getLocationX(View _v) {
int _location[] = new int[2];
_v.getLocationInWindow(_location);
return _location[0];
}
@Deprecated
public int getLocationY(View _v) {
int _location[] = new int[2];
_v.getLocationInWindow(_location);
return _location[1];
}
@Deprecated
public int getRandom(int _min, int _max) {
Random random = new Random();
return random.nextInt(_max - _min + 1) + _min;
}
@Deprecated
public ArrayList<Double> getCheckedItemPositionsToArray(ListView _list) {
ArrayList<Double> _result = new ArrayList<Double>();
SparseBooleanArray _arr = _list.getCheckedItemPositions();
for (int _iIdx = 0; _iIdx < _arr.size(); _iIdx++) {
if (_arr.valueAt(_iIdx))
_result.add((double)_arr.keyAt(_iIdx));
}
return _result;
}
@Deprecated
public float getDip(int _input){
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, _input, getResources().getDisplayMetrics());
}
@Deprecated
public int getDisplayWidthPixels(){
return getResources().getDisplayMetrics().widthPixels;
}
@Deprecated
public int getDisplayHeightPixels(){
return getResources().getDisplayMetrics().heightPixels;
}
}