我开发了一个自己的类,它扩展了EditText。 但我的自定义视图还有另一种外观作为普通视图。
public class DateEditText extends EditText {
[...]
public DateEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DateEditText(Context context) {
super(context);
init();
}
public DateEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
setInputType(InputType.TYPE_CLASS_DATETIME);
setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});
setFocusable(false);
}
[...]
}
前两个输入字段是普通的EditText。 第三是我自己的观点。
<EditText
android:layout_width="match_parent"
android:layout_height="56dp"
android:id="@+id/addTask_title"
android:textSize="16sp"
android:maxLength="50"
android:hint="@string/addTask_title"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="56dp"
android:maxLines="5"
android:scrollbars="vertical"
android:inputType="textMultiLine"
android:id="@+id/addTask_description"
android:textSize="16sp"
android:maxLength="400"
android:hint="@string/addTask_description"/>
<de.test.DateEditText
android:layout_width="match_parent"
android:layout_height="56dp"
android:id="@+id/addTask_date"
android:textSize="16sp"
android:hint="@string/addTask_date"/>
我喜欢和我自己的EditText一样拥有与前两个相同的风格,但我不知道如何实现这一点。
在具有SDK 21的设备上一切正常,但在SDK 21下面,第三个视图看起来不同。
答案 0 :(得分:1)
在自定义style="@style/Widget.AppCompat.EditText"
中添加EditText
。
例如:
<de.test.DateEditText
android:layout_width="match_parent"
android:layout_height="56dp"
android:id="@+id/addTask_date"
android:textSize="16sp"
android:hint="@string/addTask_date"
style="@style/Widget.AppCompat.EditText"/>
答案 1 :(得分:1)
对于应用colorAccent,只需从android.support.v7.widget.AppCompatEditText扩展自定义EditText类