gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:10:04 25 4
gpt4 key购买 nike

我有一些用于手机号码输入的 EditText。应用程序必须为每个国家/地区添加唯一的文本。例如亚美尼亚必须添加 +374 ,用户必须填写其他数字。另外 +374 必须是不可更改的,用户不能更改或删除它。那么有一些方法可以做到这一点吗? enter image description here

编辑:

我不想在此文本中使用 textView 或其他 View 并将其放在 ediText 的左侧。我想找到一些操作较少的方法。我需要卡住文本而不是检查每个文本更改或在用户删除其中的某些部分时添加丢失的文本。

最佳答案

创建一个自定义的可绘制类,这将有助于将文本转换为可绘制对象。

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左侧的drawable设置为

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>

最终输出的样子

enter image description here

关于android - 设置不可更改的editText android的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com