EditText问题集合

1.edittext  imeOptions属性使用及设置无效解决


虽然通常输入法软键盘右下角会是回车按键

但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标

点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”

而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”

而决定这个图标的变换的参数就是EditText中的 Android:imeOptions

android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等,这些意思都很明显


[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <EditText  
  2.       android:id="@+id/editText"  
  3.       android:layout_width="200dp"  
  4.       android:layout_height="wrap_content"  
  5.       android:imeOptions="actionSearch"  
  6.    />  



而其在Java代码中对应的值为EditorInfo.IME_ACTION_XXX 

在代码中通过editText.setOnEditorActionListener方法添加相应的监听,因为有些action是需要在代码中添加具体的相关操作的


[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. EditText editText = (EditText) contentView.findViewById(R.id.editText);  
  2.         editText.setOnEditorActionListener(new OnEditorActionListener() {  
  3.             @Override  
  4.             public boolean onEditorAction(TextView v, int actionId,  
  5.                     KeyEvent event) {  
  6.                 if (actionId == EditorInfo.IME_ACTION_SEARCH) {  
  7.                     Toast.makeText(getActivity(), "1111111",Toast.LENGTH_SHORT).show();  
  8.                 }  
  9.   
  10.                 return false;  
  11.             }  
  12.         });  

然而当我们设置这一切后,却发现点击输入框,输入法键盘完全没变化,还是回车键

这并不是上面的属性和方法无效,而是我们还需要设置别的属性来使它们生效

经过试验 设置下面两个属性中的一个即可使这个属性生效(应该还有其他的属性也可以,没去试验)

1 将singleLine设置为true

2 将inputType设置为text 

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <EditText  
  2.       android:id="@+id/editText"  
  3.       android:layout_width="200dp"  
  4.       android:layout_height="wrap_content"  
  5.       android:imeOptions="actionSearch"  
  6.       android:singleLine="true"  
  7.       android:inputType="text"  
  8.    />  


java代码设置

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);  
  2. editText.setInputType(EditorInfo.TYPE_CLASS_TEXT);  
  3. editText.setSingleLine(true);  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安卓的EditText是一个用于用户输入文本的UI组件。它允许用户在应用程序中输入、编辑和查看文本内容。你可以在布局文件中使用EditText来创建一个文本输入框,并通过代码访问和操作其中的文本。以下是一些关于EditText的常见问题和用法: 1. 如何在布局文件中添加一个EditText? 在布局文件的XML代码中,使用EditText标签来定义一个EditText组件。例如: ```xml <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入文本" android:inputType="text" /> ``` 这个例子中,我们定义了一个id为"editText"的EditText组件,设置了宽度为match_parent,高度为wrap_content,并添加了一个提示文本和输入类型为文本。 2. 如何在代码中获取EditText中的文本内容? 在代码中,你可以使用findViewById方法找到对应的EditText组件,并通过getText方法获取其中的文本内容。例如: ```java EditText editText = findViewById(R.id.editText); String text = editText.getText().toString(); ``` 这个例子中,我们通过id找到了名为"editText"的EditText组件,并将其中的文本内容转换为字符串。 3. 如何监听EditText中的文本变化事件? 你可以通过添加一个TextWatcher来监听EditText中的文本变化事件。TextWatcher是一个接口,它定义了三个方法:beforeTextChanged、onTextChanged和afterTextChanged。例如: ```java EditText editText = findViewById(R.id.editText); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // 在文本改变之前调用 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 在文本改变时调用 } @Override public void afterTextChanged(Editable s) { // 在文本改变之后调用 } }); ``` 这个例子中,我们通过addTextChangedListener方法添加了一个TextWatcher,实现了其中的三个方法来监听EditText中的文本变化事件。 这些是关于安卓EditText的一些常见问题和用法,希望对你有帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值