不能在android编辑文本中键入波斯语编号

时间:2017-09-14 12:03:43

标签: android fonts android-edittext

我想在Android EditText中输入波斯语中的电话号码。我设置Farsi字体来编辑文本,但它不起作用。我也搜索了很多但是所有人都讨论了将Text Farsi字体设置为Textview中的静态文本而不是在EditText中输入。我怎么能实现这个目标? 谢谢

1 个答案:

答案 0 :(得分:2)

试试这个:

public class CustomFontEditText extends EditText {


private Context context;
private AttributeSet attrs;
private int defStyle;

public CustomFontEditText(Context context) {
    super(context);
    this.context=context;
    init();
} 

 public CustomFontEditText(Context context, AttributeSet attrs) {
      super(context, attrs);
      this.context=context;
      this.attrs=attrs;
      init();
 }

public CustomFontEditText(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
      this.context=context;
      this.attrs=attrs;
      this.defStyle=defStyle;
      init();
}

private void init() {
      Typeface font=Typeface.createFromAsset(getContext().getAssets(), "fonts/myfont.ttf");
      this.setTypeface(font);
}
@Override
public void setTypeface(Typeface tf, int style) {
    tf=Typeface.createFromAsset(getContext().getAssets(), "fonts/farsi.ttf");
    super.setTypeface(tf, style);
}

@Override
public void setTypeface(Typeface tf) {
    tf=Typeface.createFromAsset(getContext().getAssets(), "fonts/farsi.ttf");
    super.setTypeface(tf);
}

注意:

farsi.ttf替换为您的字体名称,并使用CustomFontEditText代替xml中的默认EditText