android EditText控制項如何禁止輸入內容

來源:互聯網
上載者:User

標籤:android   false   null   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;

}

}

});

}

}


本文出自 “沒有水勒魚” 部落格,請務必保留此出處http://javaqun.blog.51cto.com/10687700/1708753

android EditText控制項如何禁止輸入內容

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.