我有一个EditText,当我输入任何数字时,$ sign应根据字符串输入移动。例如,如果我输入20,$ sign应该向右移动,它应该是20 $。如果我输入200,$ sign应该向右移动,它应该是200 $。任何帮助都将受到高度赞赏。
这就是我的代码现在的样子:`
<EditText
android:id="@+id/amount_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/space_normal"
app1:inputTextSize="@dimen/text_large"
app1:inputIconDrawable="@drawable/ic_dollar_sign"
app1:inputIconTint="@color/colorDark"
app1:inputOneHint="@string/offer_amount"
app1:inputIconTranslateY="@dimen/offer_large_text_icon_shift"
app1:inputType="number"/>
`
答案 0 :(得分:1)
使用addTextChangedListener(TextWatcher watcher)
向Textwatcher
添加EditText
。
像这样实施TextWatcher.onTextChanged(CharSequence s, int start, int before, int count)
:
TextWatcher.onTextChanged(CharSequence s, int start, int before, int count){
EditText.setText(s + "$");
}
答案 1 :(得分:1)
您可以使用TextView.addTextChangedListener()来观察文字何时发生变化。然后你可以在任何你想要的地方附上$。
编辑:正如Cruncher所说,这可能会引发另一个onTextChanged事件。所以将它包装在if中,检查它是否已经以$结尾。这样的事情:
EditText amountEditText = (EditText) findViewById(R.id.amount_edit_text);
amountEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// add $ only if we need to
if (!s.toString().substring(s.length() - 1)).equals("$")) {
amountEditText.setText(s + "$");
}
}
});