Android如何禁止向EditText控件中輸入內容詳解
前言
在Android開發(fā)中經常會遇到EditText控件,而在App開發(fā)過程中、遇到了這樣一個問題、那就是Android EditText控件如何禁止往里面輸入內容?
最開始找到修改版解決方法、但是當想輸入的時候就有問題了、可以參考一下、但不建議這樣寫
EditText editText = (EditText) findViewById(R.id.editText1); editText.setKeyListener(null);
看到這個問題大家可能有點奇怪了、EditText的功能不就是往上面寫入內容嗎?再者、如果真要禁止輸入文本、在布局文件中添加
android:focusable="false"
或者在代碼中使用、不就Ok了?
editText.setFocusable(false)
項目需求是這樣的、在EditText后面跟一個CheckBox、勾選CheckBox可以輸入、否則不可以輸入、另外也有這種需求、比如已經被setText()內容、則需要禁止輸入、防止它被修改、
如果沒有顯示內容、則將EditText設置為可輸入狀態(tài)
經過測試驗證:setFocusable方法的效果只有第一次使用時有效、也就是說若在布局文件里面設置:
android:focusable="false"
即使你在代碼中設置此控件屬性:editText.setFocusable(true);也不能對它進行編輯、即setFocusable方案不可行、經過摸索得出可行方案利用setInputType來實現、代碼如下
editText.setInputType(InputType.TYPE_NULL);//來禁止手機軟鍵盤 editText.setInputType(InputType.TYPE_CLASS_TEXT);//來開啟軟鍵盤
應用程序默認為開啟狀態(tài)、特別注意:這種方法也只能禁止軟鍵盤、若手機自帶硬鍵盤、此方案失效
public class EditTextTest extends Activity
{
/** test EditText forbid input function demo */
EditText editText;
boolean flag = true;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.editText1);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if (flag==true)
{
System.out.println("開啟軟鍵盤");
editText.setInputType(InputType.TYPE_CLASS_TEXT);
flag = false;
}else
{
System.out.println("禁止軟鍵盤");
editText.setInputType(InputType.TYPE_NULL);
flag = true;
}
}
});
}
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- android同時控制EditText輸入字符個數和禁止特殊字符輸入的方法
- 全面解析Android中對EditText輸入實現監(jiān)聽的方法
- Android文本輸入框(EditText)輸入密碼時顯示與隱藏
- Android之EditText控制禁止輸入空格和回車
- Android UI設計系列之自定義EditText實現帶清除功能的輸入框(3)
- Android編程實現實時監(jiān)聽EditText文本輸入的方法
- Android輸入框控件ClearEditText實現清除功能
- Android高級xml布局之輸入框EditText設計
- Android EditText限制輸入字數的方法
- Android中多個EditText輸入效果的解決方式
相關文章
Android中多個ContentProvider的初始化順序詳解
在日常Android開發(fā)中經常會寫一些sdk來供他人或者自己調用,一般這些sdk都涉及到初始化,下面這篇文章主要給大家介紹了關于Android中多個ContentProvider的初始化順序的相關資料,需要的朋友可以參考下2022-04-04

