大家好我正在做一个应用程序,它在edittext末尾有一个不可编辑的字符串。Android编辑文本末尾带有不可编辑的字符串
例如,
数量_ __ .00
我想要做这样的事情。
这是我到目前为止已经试过:
etQuantity.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(".00");
String str = s.toString();
String finalString = str + stringBuilder.toString();
etQuantity.setText(finalString);
Log.d("String", "" + finalString);
}
@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 before, int count) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(".00");
String str = s.toString();
String finalString = str + stringBuilder.toString();
etQuantity.setText(finalString);
Log.d("String", "" + finalString);
}
});
但我得到了一个错误:
01-30 09:49:33.541: E/AndroidRuntime(4294): FATAL EXCEPTION: main
01-30 09:49:33.541: E/AndroidRuntime(4294): java.lang.StackOverflowError
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1013)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.SpannableStringBuilder.getChars(SpannableStringBuilder.java:913)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.TextUtils.getChars(TextUtils.java:74)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.method.ReplacementTransformationMethod$ReplacementCharSequence.getChars(ReplacementTransformationMethod.java:151)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.TextUtils.getChars(TextUtils.java:74)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.MeasuredText.setPara(MeasuredText.java:106)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.StaticLayout.generate(StaticLayout.java:239)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.DynamicLayout.reflow(DynamicLayout.java:284)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.text.DynamicLayout.<init>(DynamicLayout.java:170)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.makeSingleLayout(TextView.java:5986)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.makeNewLayout(TextView.java:5884)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.checkForRelayout(TextView.java:6423)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.setText(TextView.java:3696)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.setText(TextView.java:3554)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.EditText.setText(EditText.java:80)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.setText(TextView.java:3529)
01-30 09:49:33.541: E/AndroidRuntime(4294): at com.innovalynx.vms.fragments.SalesOrderDetailFragment$1.afterTextChanged(SalesOrderDetailFragment.java:92)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.sendAfterTextChanged(TextView.java:7247)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.setText(TextView.java:3703)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.setText(TextView.java:3554)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.EditText.setText(EditText.java:80)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.setText(TextView.java:3529)
01-30 09:49:33.541: E/AndroidRuntime(4294): at com.innovalynx.vms.fragments.SalesOrderDetailFragment$1.afterTextChanged(SalesOrderDetailFragment.java:92)
01-30 09:49:33.541: E/AndroidRuntime(4294): at android.widget.TextView.sendAfterTextChanged(TextView.java:7247)
我做错了任何事物请点我给它。您的帮助将得到真正的赞赏。
是的,我删除了我的代码在ontextchanged,但它仍然是一样的。 – Dunkey
添加了布局代码。检查 –
我试过这个,但我想实现这一点。追加部分 – Dunkey