当前位置 : 主页 > 手机开发 > android >

设置不可更改的editText android的某些部分

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有一些EditText用于手机号码输入.应用必须为每个国家/地区添加唯例如,亚美尼亚必须添加374,用户必须填写其他数字. 374必须是不可更改的,用户无法更改或删除它.这样做有什么办法吗?
我有一些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>

最终输出看起来像

网友评论