Android Studio中的EditText
我有XML格式的EditText,看起来像 EditText获取数字输入。例如,5作为年率,我希望也显示为5.00% 在我的Java代码中,我使用Android Studio中的EditText,android,Android,我有XML格式的EditText,看起来像 EditText获取数字输入。例如,5作为年率,我希望也显示为5.00% 在我的Java代码中,我使用 rateAnnual = (EditText) rootView.findViewById(R.id.rate); rateAnnual.setText(String.format("%,.2f",initialMortgage.getRate())+"%"); 可将文本显示为5.00%; 问题是,当我单击rateAnnual EditText时
rateAnnual = (EditText) rootView.findViewById(R.id.rate);
rateAnnual.setText(String.format("%,.2f",initialMortgage.getRate())+"%");
可将文本显示为5.00%;
问题是,当我单击rateAnnual EditText时,它怎么可能只显示实数5.00并删除%符号以更新值?您可以不使用“%”而只选择数字,这样:
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setSelection(0, editText.getText().length() - 2);
}
}
或者,获取文本并在单击时将文本设置为除“%”之外的所有内容(您在问题中要求的内容):
我在我的应用程序中做了类似的事情
edittext1.setOnFocusChangeListener(new OnFocusChangeListener() {
String previousText = null;
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
previousText = edittext1.getText().toString();
edittext1.setText("");
} else {
if (edittext1.getText().toString().equals(""))
edittext1.setText(previousText);
}
}
});
这里我使用一个焦点侦听器和一个名为previousText的字符串变量
当edittext具有焦点时,我将previousText变量设置为当前文本,然后清除edittext中的字符串。这可以很容易地修改,以获得
您还会注意到,当我们失去焦点时,我使用相同的previousText变量将文本设置回原来的状态(如果EditText为空),您可以使用以下变量来应用它:
rateAnnual.setText(String.format("%,.2f",initialMortgage.getRate())+"%");
这种方法并不能完全复制您所要求的,但我认为它提供的自动清除功能对于用户体验来说是非常好的 为什么不在包含“%”的编辑字段旁边创建一个标签呢?这样,您就不需要将其显示为编辑字段的一部分。
previousText = edittext1.getText().toString().substring(0, 4);
rateAnnual.setText(String.format("%,.2f",initialMortgage.getRate())+"%");