大家好我正在做一個應用程序,它在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