1

EditText在 XML 文件中声明了一个自定义,我将其包括在内:

<include layout="@layout/my_edit_text"
        android:id="@+id/passwordField"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/passwordHint"
        android:inputType="textPassword" />

这是my_edit_text.xml

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:textColor="@color/gray"
    android:textSize="@dimen/editTextFontSize"
    android:padding="@dimen/editTextPadding"
    android:background="@drawable/edit_text_background"
    android:ellipsize="end" />

但是,由于某种原因,我无法设置hintor这种方式。inputType如果我将它设置为my_edit_text.xml,它可以正常工作,但我希望能够单独设置每个引用。

我有这个习惯的原因EditText是为了避免在我的每一个EditTexts 中重写所有的共同值。

我是否必须做与此人类似的事情?如果我这样做,我是否需要实际构建一个 .java 子类并以这种方式提取属性?这似乎太过分了。

4

1 回答 1

3

我拥有自定义 EditText 的原因是为了避免必须重写每个 EditText 中的所有公共值。

第 1 步:删除my_edit_text.xml.

步骤#2:删除所有对my_edit_text.xml.

第 3 步:定义样式资源(例如 in res/values/styles.xml),类似于:

<style name="rileyText">
  <item name="android:textColor">@color/gray</item>
  <item name="android:textSize">@dimen/editTextFontSize</item>
  <item name="android:padding">@dimen/editTextPadding</item>
  <item name="android:background">@drawable/edit_text_background</item>
  <item name="android:ellipsize">end</item>
</style>

步骤#4:添加到您想要应用这些特定属性style="@style/rileyText"的所有小部件。EditText

于 2013-05-02T20:09:28.947 回答