我有一些EditText用于手机号码输入.应用必须为每个国家/地区添加唯例如,亚美尼亚必须添加374,用户必须填写其他数字. 374必须是不可更改的,用户无法更改或删除它.这样做有什么办法吗?
编辑:
我不想将textView或其他视图与此文本一起使用并将其放在ediText的左侧.我希望通过较少的操作找到一些方法.我需要冻结文本,以便在用户删除其中的某些部分时不检查每个文本更改或添加缺少的文本.
创建一个自定义可绘制类,有助于将文本转换为drawable.public class TextDrawable extends Drawable { private final String text; private final Paint paint; public TextDrawable(String text) { this.text = text; this.paint = new Paint(); paint.setColor(Color.BLACK); paint.setTextSize(16f); paint.setAntiAlias(true); paint.setTextAlign(Paint.Align.LEFT); } @Override public void draw(Canvas canvas) { canvas.drawText(text, 0, 6, paint); } @Override public void setAlpha(int alpha) { paint.setAlpha(alpha); } @Override public void setColorFilter(ColorFilter cf) { paint.setColorFilter(cf); } @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; } }
然后将edittext的leftable设置为
EditText et = (EditText)findViewById(R.id.editText1); String code = "+374"; et.setCompoundDrawablesWithIntrinsicBounds(new TextDrawable(code), null, null, null); et.setCompoundDrawablePadding(code.length()*10);
edittext在布局文件中定义为
<EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="16sp" android:ems="10" > <requestFocus /> </EditText>
最终输出看起来像