java - 如果语句只检查一次
问题描述
我希望我btnsave
只有在有东西的时候才能工作editText
。首先,当应用程序启动时,当editText
我的代码中没有任何东西工作时(btnsave
不起作用)。但是当我输入一些东西时,editText
我希望btnsave
能够工作。但不是!它不起作用。我认为 if 语句只运行一次。
问题是什么?我希望此代码在应用程序运行时永久运行。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSave = (Button) findViewById(R.id.btnSave);
editText = (EditText) findViewById(R.id.editText);
if (!editText.getText().toString().matches(""))
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"H", Toast.LENGTH_SHORT).show();
}
});
}
换句话说
btnAdd = (Button) findViewById(R.id.btnAdd);
editText = (EditText) findViewById(R.id.editText);
if (editText.getText().toString().matches(""))
btnAdd.setEnabled(false);
else
btnAdd.setEnabled(true);
当应用程序启动时,btn 被禁用(因为editText
是空的)但是当我在其中输入文本时editText
,预计 btn 会被启用,但它没有!
我认为当我输入某事时,editText
它不会重新检查条件。为什么?
解决方案
您应该遵循以下逻辑:
- 创建并实现 onClickListener。
- 指定条件语句。
- 执行动作。
以下代码段应满足您的需求:
btn.setOnClickListener(newView.OnClickListener() {
@Override
public void onClick(View view){
if(!editText.getText().toString().matches("")){
Toast.makeText(MainActivity.this, "H", Toast.LENGTH_SHORT).show();
}
});
如果您想让您的按钮在 EditText 中有文本时可用,而不是在没有文本时可用,您可以使用以下属性:
btn.setClickable(true);
只需在条件语句中使用这一行。
推荐阅读
- ios - 将应用程序转换为 IPAD 时如何保持横向或纵向模式?
- angular - 为什么我在角度上失去了 this.variable 值?
- cordova - 如何在科尔多瓦使用 oauth 登录
- javascript - Axios API 响应 JSON 正文具有“真/假”作为字符串类型而不是布尔值
- git - 需要防止不需要的存储库
- javascript - 类型 Eroor :message_str.split 不是函数
- ipsec - setkey ipsec 工具中是否支持 hmac-md5-96?
- jquery - 依次提交所有页面的dataTable中的所有数据
- ruby-on-rails - 如何删除单个表中每个用户的最后 100 个日志以外的所有日志?
- python-3.x - 在 python 中手动提取我们的关注者的 Twitter 数据