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