有没有一种方法可以在Android中以交互方式监控和编辑文本字段,从而正确格式化输入的内容
正如标题所要求的,我希望正确地监视编辑文本字段,以将输入的数字格式化为货币,并在单元格的最后2位后面放置或插入“.” 在所有情况下,当用户输入数字并展开字段时,编辑文本将反映他们输入的数字将反映为货币,示例如下: 用户输入“123456” 编辑文本将反映为:“1234.56” 甚至:“1234.56美元” 我尝试了许多不同的技术,并相信代码部分可能需要在TextWatcher中得到满足,如果用户单击字段,我当前必须清除字段,并且在检查2个字段后收到正确的布尔值后启用按钮 下面我将展示的代码片段目前正在工作,我只需要适当的代码和位置来实现上述需求 此部分反映了我的TextWatcher部分:有没有一种方法可以在Android中以交互方式监控和编辑文本字段,从而正确格式化输入的内容,android,android-edittext,listener,currency,interactive,Android,Android Edittext,Listener,Currency,Interactive,正如标题所要求的,我希望正确地监视编辑文本字段,以将输入的数字格式化为货币,并在单元格的最后2位后面放置或插入“.” 在所有情况下,当用户输入数字并展开字段时,编辑文本将反映他们输入的数字将反映为货币,示例如下: 用户输入“123456” 编辑文本将反映为:“1234.56” 甚至:“1234.56美元” 我尝试了许多不同的技术,并相信代码部分可能需要在TextWatcher中得到满足,如果用户单击字段,我当前必须清除字段,并且在检查2个字段后收到正确的布尔值后启用按钮 下面我将展示的代码片段目
TextWatcher textWatcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
calcbtn.setEnabled(isready());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int count,int after) {
}
};
numofpep.addTextChangedListener(textWatcher); //Links to the TextWatcher element for afterTextChanged function
billtotal.addTextChangedListener(textWatcher);//Links to the TextWatcher element for afterTextChanged function
}
欢迎提出任何建议或意见
像这样的东西应该可以:
@Override
public void afterTextChanged(Editable s) {
String val = billTotal.getText().toString();
String newStringContent = convertToDollarsAndCents(val);
// change string to reflect your desired format
billTotal.setText(newStringContent)
}
public String convertToDollarsAndCents(String val) {
if(!val.contains(".") {
if(val.length<=2) {
return val+".00"
}
else {
return val.subString(0, val.length-2)+"."+val.subString(val.length-2, val.length)
}
}
}
@覆盖
公共无效后文本已更改(可编辑){
字符串val=billTotal.getText().toString();
字符串newStringContent=convertToDollarsAndCents(val);
//更改字符串以反映所需的格式
billTotal.setText(新闻字符串内容)
}
公共字符串转换为美元和美分(字符串值){
如果(!val.contains(“.”){
如果(val.length)看起来不错,但我使用手机作为键盘,因此没有“.”让用户输入“.”这就是我想要交互性的原因。另一个键盘有许多不同的字符,我不想让用户使用这些字符,只是数字,因为从左边开始输入数字很简单,总的来说不必担心“.”。我很确定数字键盘有一个“.”在itok上,我会检查它,我相信模拟器显示了“.”但当我在手机上测试它时,它没有显示“.”我会验证并让大家知道。谢谢
<EditText android:inputType="number" ... />