问题?

android EditText控件如何禁止往里面输入内容?


修改版解决方法:

EditTexteditText =(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;

}

}

});

}

}


更多相关文章

  1. Android软键盘适配问题
  2. 第17天android:《android从零开始》视频(1-5)
  3. Android(安卓)EditView
  4. Android下模拟按键输入
  5. [RK3399][Android7.1] 调试笔记 --- 设置搜狗为开机默认输入法
  6. android mtk6592 禁止拖动主界面图标
  7. Android(安卓)EditText不弹出软键盘
  8. 调出软键盘 挤掉标题栏咋办
  9. Android入门学习笔记之人机用户界面

随机推荐

  1. 解决OPPO手机在Android(安卓)studio 环境
  2. Android调用系统相机拍照并保存图片文件
  3. android 音量调节以及媒体音量界面
  4. Android移动端音视频的快速开发教程(四)
  5. 关于Layout
  6. 更新Android(安卓)SDK的小技巧
  7. Android(安卓)开发 关于APP无法安装到And
  8. Android培训班(47)
  9. Android(安卓)5.1长按电源键添加重启功能
  10. LayoutInflater的作用和使用方法