Android如何禁止向EditText控件中输入内容详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android如何禁⽌向EditText控件中输⼊内容详解
前⾔
在Android开发中经常会遇到EditText控件,⽽在App开发过程中、遇到了这样⼀个问题、那就是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设置为可输⼊状态
经过测试验证:setFocusable⽅法的效果只有第⼀次使⽤时有效、也就是说若在布局⽂件⾥⾯设置:
android:focusable="false"
即使你在代码中设置此控件属性:editText.setFocusable(true);也不能对它进⾏编辑、即setFocusable⽅案不可⾏、经过摸索得出可⾏⽅案利⽤setInputType来实现、代码如下
editText.setInputType(InputType.TYPE_NULL);//来禁⽌⼿机软键盘
editText.setInputType(InputType.TYPE_CLASS_TEXT);//来开启软键盘
应⽤程序默认为开启状态、特别注意:这种⽅法也只能禁⽌软键盘、若⼿机⾃带硬键盘、此⽅案失效
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(yout.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;
}
}
});
}
}
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。