前言
在Android開發(fā)中經(jīng)常會遇到EditText控件,而在App開發(fā)過程中、遇到了這樣一個(gè)問題、那就是Android EditText控件如何禁止往里面輸入內(nèi)容?
最開始找到修改版解決方法、但是當(dāng)想輸入的時(shí)候就有問題了、可以參考一下、但不建議這樣寫
EditText editText = (EditText) findViewById(R.id.editText1);editText.setKeyListener(null);
看到這個(gè)問題大家可能有點(diǎn)奇怪了、EditText的功能不就是往上面寫入內(nèi)容嗎?再者、如果真要禁止輸入文本、在布局文件中添加
android/248795.html">android/90150.html">android:focusable="false"
或者在代碼中使用、不就Ok了?
editText.setFocusable(false)
項(xiàng)目需求是這樣的、在EditText后面跟一個(gè)CheckBox、勾選CheckBox可以輸入、否則不可以輸入、另外也有這種需求、比如已經(jīng)被setText()內(nèi)容、則需要禁止輸入、防止它被修改、
如果沒有顯示內(nèi)容、則將EditText設(shè)置為可輸入狀態(tài)
經(jīng)過測試驗(yàn)證:setFocusable方法的效果只有第一次使用時(shí)有效、也就是說若在布局文件里面設(shè)置:
android:focusable="false"
即使你在代碼中設(shè)置此控件屬性:editText.setFocusable(true);也不能對它進(jìn)行編輯、即setFocusable方案不可行、經(jīng)過摸索得出可行方案利用setInputType來實(shí)現(xiàn)、代碼如下
editText.setInputType(InputType.TYPE_NULL);//來禁止手機(jī)軟鍵盤editText.setInputType(InputType.TYPE_CLASS_TEXT);//來開啟軟鍵盤
應(yīng)用程序默認(rèn)為開啟狀態(tài)、特別注意:這種方法也只能禁止軟鍵盤、若手機(jī)自帶硬鍵盤、此方案失效
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; } } }); } } 總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選