您的位置:首页 > 移动开发 > Android开发

android EditText控件如何禁止输入内容

2014-01-08 17:34 483 查看


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:

[java] view
plaincopy

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;

}

}

});

}

}

转自:/article/7987571.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: