EditText输入为空button不可点击搜索

一丶任务详情

二丶改动后演示效果

三丶改动过程

分析:非常明显这里是须要监听EditText,推断输入字符串长度是否不为0来改变Button样式

首先的屡清楚代码逻辑在适当的位子加监听推断是最好的处理方法,然而并没有理清楚。原团队用Eclipse开发且java用的多。代码并没透彻理解(屡清楚某个功能点定会与大家分享)所以呢这里仅仅好自己加入

第一步xml设置button不可点击并改动样式

android:background="@color/login_bar_btn_enable"
android:enabled="false"

注意:这里button不可点击是设置enable属性

第二步监听EditText

这里一般常会用到的键盘监听

  1. edittext.setOnKeyListener(new View.OnKeyListener() {
  2. @Override
  3. public boolean onKey(View v, int keyCode, KeyEvent event) {
  4. textview.setText(edittext.getText());
  5. return false;
  6. }
  7. });

開始我也是使用这样的。然而达到的效果是非得输入键盘点击Enterbutton才可点击,明显须要的并非这样的结果,正确的代码片段贴上

//输入框为空不可点击 by jin
edt_orderNo.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) {
      // 推断输入不为空。button可点击
      if (edt_orderNo.length() != 0) {
         but_queryChange.setEnabled(true);
         but_queryChange.setBackgroundResource(R.drawable.login_bar_btn);
      } else {
         but_queryChange.setEnabled(false);
         but_queryChange.setBackgroundResource(R.color.login_bar_btn_enable);
      }
   }

   @Override
   public void afterTextChanged(Editable s) {
   }
});

此方法是监听EditText输入过程。在onTextChanged中加入是为了更具体的监听输入

onTextChanged中的推断就不在赘述了

小结:

1.百度的姿势非常重要,说清楚需求才找得到想要的代码

2.依旧小白一个,一个功能点的代码都不能屡的十分清楚

欢迎增加Android&ios学习群:319010802

时间: 2024-10-05 04:45:52

EditText输入为空button不可点击搜索的相关文章

Android-------ListView列表中获取EditText输入的值

最近项目的购物车中用列表中包含了留言功能, 需要获取EditText输入的内容,当购买多件商品时,就有点棘手了. 经过查资料解决了这个功能,并写了一个案例: 效果图: 可以在商品数据用一个字段来管理留言数据,这样就可以方便的操作了. 代码: public class MainActivity extends AppCompatActivity { ListView listView; @Override protected void onCreate(Bundle savedInstanceSt

android ListView中的Item有Button时候点击异常处理

1.当ListView中有Button的时候往往会遇到很多问题,比较常见的一个问题是: 假设:在ListView中有N个Item当点击其中某个Item中的Button的时候,需要改变当前Button的状态,在你点击以后确实最后一个Item的Button的状态改变了,不管点击哪一个Button都是最后一个 Item的中的Button的状态被改变了,这里涉及到ListView重绘的问题. 要解决上面的问题的方法是将点击的监听事件提出来进行封装,在用就可以解决上述问题了. 给个示例代码: 在ListV

怎么判断UITextField 输入为空 输入全为空格

手机平台的自动化测试工具很多,之前研究过了安卓和苹果的原生自动化测试框架,经一些同事介绍,貌似Appium是个不错的工具. 想记录一下研究的结果,也算是篇干货的文章 在网上也看了一些视频,个人认为这个自动化测试的特点就是 1. 多编程语言支持 相对于传统的IOS UIautomation只能支持js语言,Appium起到了一个翻译的作用,它其实是一个CS架构,服务器和IOS模拟器或真机直接通讯,客户端和服务器之间用HTTP协议进行交互,所以客户端用什么语言其实不重要.下面会有一个python编程

安卓给button增加点击事件

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mmmm); //获取XML里面的button Button button=(Button)findViewById(R.id.button1); //给button增加点击事件 button.setOnClickListener(new OnClick

Android——Activity恢复用户用EditText输入的数据

说明: 在横屏输入的内容,在Activity销毁后,即横屏后,获取用户输入的内容 步骤: 1.在xml页面定义EditText的id 2.用onSaveInstanceState保存用户输入的数据 (1)调父类 (2)用findViewById使用id查找并获取View的实例(View所有控件的父类,再强制转换一下) (3)找到实例,获取文本内容:转为字符串 get (4)将获取到内容保存起来 put 3.用onRestoreInstanceState恢复数据 (1)先获取数据 get (2)操

通过UIView来模拟 实现 Button的点击效果

首先建立根视图 在根视图上实现以下功能: 通过MyButton 实现 button的点击效果 首先建立一个类:MyButton这个类 1.在MyButton.h文件中写一个自定义的方法,把目标和对应的动作传过来 原代码: -(void)addNewTarget:(id)target Action:(SEL)action; target :目标 ,button 执行哪一个类的方法,对应的目标就是那个类的对象 action:动作 ,让button具体做什么事,执行的方法就是对相应的动作 2.在MyB

Android实现限制EditText输入文字的数量

一: 声明控件. TextView hasnumTV; TextView hasnum;// 用来显示剩余字数 int num = 50;// 限制的最大字数 二: 主要的方法: hasnumTV = (TextView) findViewById(R.id.tv_num); hasnumTV.setText("限" + num + "" + "字以内"); editText.addTextChangedListener(new TextWatc

android 之EditText输入检测

最近开发一个功能的时候发生一个故事,其情节如下: 功能其实不复杂,其中需要一个EditText来获取用户输入的信息.于是,我做了一个Dialog来显示我的输入界面(代码如下): mAlertDialog = new AlertDialog.Builder(this)//, android.R.style.Theme_Holo_Light .setIcon(R.drawable.ic_dialog_info_light) .setTitle(R.string.model_rename_device

Android EditText输入字数限制总结(包括中文输入内存溢出的解决方法)

限定EditText输入个数的解决方案很多,但是一般主要考虑两点,也就是处理两件事: (1)不同语言字符(英文.中文等)处理方式 (2)输入字符达到数目后,是否仍然允许用户输入 第一点,涉及的东东其实蛮多,不同语言在不同编码中占据字节数等,不同语言在U8等编码的表示范围等,这一整块知识很丰富, 自己暂时没有理的特别顺,稍后整理再说吧. 第二点,目前主流app的处理方案也各有不同,qq5.0以前的版本,发表说说貌似是没有字数限制的(我试了一个350字左右的照样发), 5.0以后限制了,这样如果用户