當我setEnabled(false)
或通過XML文件android:enabled="false"
禁用的EditText,背景顏色將是灰色的:如何禁用EditText並保持背景顏色爲白色?
,如果我改變了白色android:background="@color/white"
的背景下,我會失去邊界:
所以我的問題是,如何禁用的EditText(我不希望在其上長擊將筋疲力盡的任何對話),並保持邊境,因爲它是什麼?
當我setEnabled(false)
或通過XML文件android:enabled="false"
禁用的EditText,背景顏色將是灰色的:如何禁用EditText並保持背景顏色爲白色?
,如果我改變了白色android:background="@color/white"
的背景下,我會失去邊界:
所以我的問題是,如何禁用的EditText(我不希望在其上長擊將筋疲力盡的任何對話),並保持邊境,因爲它是什麼?
我找到了一種方法來做到這一點:
android:editable="false"
android:cursorVisible="false"
editText.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
EditText沒有「setEditable」! – AVEbrahimi 2012-03-17 07:51:50
@Avebrahimi是的,謝謝你通知我,我更新了答案! – 2012-03-17 15:21:17
嘗試使用TextView
而不是android:background="#FFFFFF"
。您也可以嘗試android:focusable="false"
。
最好的辦法是創建你自己的狀態列表Drawable,並指定禁用的背景與啓用狀態相同。您需要創建自己的9-Patch圖像,或者也可以從Android開放源代碼中提取資源文件。
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
下面是我用我的EditText背景樣本:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active tab -->
<item android:state_focused="true"
android:drawable="@drawable/edittext_bg_selected" />
<!-- Inactive tab -->
<item android:state_focused="false"
android:drawable="@drawable/edittext_bg_unselected" />
<item android:state_enabled="false"
android:drawable="@drawable/edittext_bg_unselected" />
<!-- Add all of your other states -->
</selector>
你只需要使用不同的狀態一塌糊塗創建你的作品。
這個答案爲我工作(當這些都不一樣): http://stackoverflow.com/a/7696282/ 1686442 – 2013-04-04 15:14:22