編輯:關於Android編程
本文實例講述了Android實現EditText控件禁止輸入內容的方法。分享給大家供大家參考,具體如下:
問題:
android如何實現EditText控件禁止往裡面輸入內容?
修改版解決方法:
EditText editText = (EditText) findViewById(R.id.editText1); editText.setKeyListener(null);
看到這個問題大家可能有點奇怪了,EditText的功能不就是往上面寫入內容嗎?
再者,如果真要禁止輸入文本,在布局文件中添加 android:focusable="false",
或者在代碼中使用editText.setFocusable(false),不就Ok了?
項目需求是這樣的,如果EditText上面已經被setText()內容,則需要禁止輸入,防止它被修改。
如果沒有顯示內容,則將EditText設置為可輸入狀態。
經過測試驗證:setFocusable方法的效果只有第一次使用時有效,也就是說若在布局文件裡面設置:
android:focusable="false",即使你在代碼中設置此控件屬性:editText.setFocusable(true);也不能對它進行編輯。
即setFocusable方案不可行。經過摸索得出可行方案。
利用 editText.setInputType(InputType.TYPE_NULL);來禁止手機軟鍵盤。
editText.setInputType(InputType.TYPE_CLASS_TEXT);來開啟軟鍵盤。
應用程序默認為開啟狀態。
特別注意:這種方法也只能禁止軟鍵盤,若手機自帶硬鍵盤,此方案失效。
附測試demo:
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程序設計有所幫助。
矢量室內地圖開發因為公司項目的需要,需要開發一套室內地圖,並實現路線的規劃功能。因為之前沒做過這方面的開發,相關的資料也比較少,所以只能一個人去摸索。剛開始我是使用一般的
我覺得應用程序需要處理最多的就是用戶動作,也就是需要為用戶動作提供響應,這種為用戶動作提供響應的機制就是事件處理。Android提供了兩套事件處理機制:基於監聽的事件處理
我們在開發中經常用到倒計時的功能,比如發送驗證碼後,倒計時60s再進行驗證碼的獲取,為了方便以後使用,這裡做個記錄,講講倒計時器的實現。 1、先進行倒計時工具類
1,講解build.gradle文件。1.1根目錄Android1.1.1defaultConfig是Android的根目錄,可以配置包名等信息,若AndroidMain