使用 EditTexts

EditText 是 Android 應用程式中的標準文字輸入視窗小部件。如果使用者需要在應用程式中輸入文字,這是他們執行此操作的主要方式。

EditText

可以設定許多重要屬性來自定義 EditText 的行為。下面列出了其中一些。檢視官方文字欄位指南,瞭解更多輸入欄位詳細資訊。

用法

EditText 將新增到佈局中,其中包含具有以下 XML 的所有預設行為:

<EditText
    android:id="@+id/et_simple"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
</EditText>

請注意,EditText 只是 TextView 的精簡擴充套件,並且繼承了所有相同的屬性。

檢索價值

獲取輸入 EditText 的文字的值如下:

EditText simpleEditText = (EditText) findViewById(R.id.et_simple);
String strValue = simpleEditText.getText().toString();

進一步的入門定製

我們可能希望將條目限制為單行文字(避免換行):

<EditText
  android:singleLine="true"
  android:lines="1"
/>

你可以使用 digits 屬性限制可以輸入到欄位中的字元:

<EditText
  android:inputType="number"
  android:digits="01"
/>

這會將輸入的數字限制為 01。我們可能希望限制字元總數:

<EditText
  android:maxLength="5"
/>

使用這些屬性,我們可以定義文字欄位的預期輸入行為

調整顏色

你可以使用 android:textColorHighlight 屬性調整 EditText 中所選文字的高亮背景顏色:

<EditText
    android:textColorHighlight="#7cff88"
/>

顯示佔位符提示

你可能希望為 EditText 控制元件設定提示,以提示使用者輸入特定輸入:

<EditText
    ...
    android:hint="@string/my_hint">
</EditText>

提示

改變底線顏色

假設你正在使用 AppCompat 庫,則可以覆蓋樣式 colorControlNormal,colorControlActivated 和 colorControlHighlight:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">#d32f2f</item>
    <item name="colorControlActivated">#ff5722</item>
    <item name="colorControlHighlight">#f44336</item>
</style>

如果你沒有在 DialogFragment 中看到這些樣式,則使用傳入 onCreateView() 方法的 LayoutInflater 時會出現一個已知錯誤。

該問題已在 AppCompat v23 庫中修復。請參閱本指南,瞭解如何升級。另一個臨時解決方法是使用 Activity 的佈局 inflater 而不是傳遞給 onCreateView() 方法的佈局:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_fragment, container);
  }

收聽 EditText 輸入

檢視基本事件監聽器懸崖,瞭解如何監聽 EditText 的更改並在發生這些更改時執行操作。

顯示浮動標籤反饋

傳統上,EditText 在使用者開始輸入後隱藏提示訊息(如上所述)。此外,任何驗證錯誤訊息都必須由開發人員手動管理。

使用 TextInputLayout,你可以設定浮動標籤以顯示提示和錯誤訊息。你可以在這裡找到更多細節