定义自定义EditText

时间:2014-11-25 04:26:11

标签: android xml android-edittext customization programmatically-created

我是初学者。我想为自定义EditText定义xml,然后在运行时以编程方式添加这些自定义edittexts,而不使用一堆代码来自定义editTexts。这可能与从库中实现自定义按钮,文本视图等类似......虽然它将是我自己的。解决这个问题的最佳方式是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

除了以上评论链接中共享的代码之外的替代代码如下: 基本上这个代码使用户可以轻松自定义字体等。

public class MyEditText extends EditText {

    public MyEditText(Context context) {
        super(context);
    }

    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        parseAttributes(context, attrs);
    }

    public MyEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        parseAttributes(context, attrs);
    }

    private void parseAttributes(Context context, AttributeSet attrs) {
        TypedArray values = context.obtainStyledAttributes(attrs, R.styleable.Simplified);

        int typefaceValue = values.getInt(R.styleable.Simplified_typeface, 0);
        values.recycle();

        setTypeface(MyFontUtil.obtaintTypeface(context, typefaceValue));
    }

}

XML

 <com.my.mtetno.widget.MyEditText
  android:id="@+id/uname"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:background="@drawable/lh_edit_field_without_border"
  android:inputType="textEmailAddress"
  android:maxLines="1"
  android:overScrollMode="always"
  android:textSize="@dimen/login_page_edit_text_size"
  app:typeface="simplified_regular" />