android - 活动开始时禁用按钮
问题描述
我有一些与我的按钮相关联的值,它与我的数据库中的特定字段相关联。
如果字段不是 Null,如何禁用按钮(不单击)。
我试图这样做:
public class MainActivity extends AppCompatActivity {
Button button;
String service_id = "65";
String indate = "29/03/2018";
String intransit = "2018-03-21 15:00:00.000";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
button = (Button) findViewById( R.id.Enter );
button.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
new Background().execute();
//new Enter().execute();
}
} );
}
private class Background extends AsyncTask<String, Void, String>{
String url;
@Override
protected String doInBackground(String... strings) {
url = "http://localhost/check.php";
try {
URL urL = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urL.openConnection();
conn.setRequestMethod( "POST" );
conn.setDoInput( true );
conn.setDoOutput( true );
OutputStream out = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter( new OutputStreamWriter( out, "UTF-8" ) );
String data = URLEncoder.encode( "service_id", "UTF-8" ) + "=" + URLEncoder.encode( service_id, "UTF-8" ) + "&"
+ URLEncoder.encode( "indate", "UTF-8" ) + "=" + URLEncoder.encode( indate, "UTF-8")+ "&"
+ URLEncoder.encode( "intransit", "UTF-8" ) + "=" + URLEncoder.encode( intransit, "UTF-8");
writer.write( data );
writer.flush();
writer.close();
out.close();
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader( new InputStreamReader( in, "iso-8859-1" ) );
String result = "";
String line = "";
while((line =reader.readLine()) != null){
result += line;
}
reader.close();
in.close();
conn.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result){
Log.e(TAG, "Result ="+result);
if(result.equals( "Disabled" )){
button.setEnabled( false );
}else{
Toast.makeText( MainActivity.this, "Updated", Toast.LENGTH_SHORT ).show();
button.setEnabled( false );
}
}
}
}
在这段代码中:当活动开始时,按钮仍然处于启用状态,要禁用它,我必须单击它。
请露出我的英语。
谢谢你的帮助。
解决方案
Android 提供了两种实现相同的方法 -
1. button.setClickable(false)
如果您使用它,按钮将不会响应任何点击事件。
2. button.setEnabled(false)
使用它不仅不可点击,而且还直观地表明该按钮已禁用。
并且根据您的空检查(条件),您可以轻松实现这一点。谢谢。
推荐阅读
- android - 在中心设置 ActionBar 标题文本
- swift - 当键盘出现在滚动视图中时,如何修复此功能以移动文本字段
- angular - Angular 5 为个人开发人员存储设置的最佳实践
- php - 如何检查时间是否已过期?
- ruby - 从自定义异常类中获取“消息”
- opencl - OpenCL 同时吃掉主机内存和设备内存
- html - 正确使用 Google 地图的 ARIA 角色
- powershell - Powershell创建microsoft access数据库错误
- hexo - Hexo server 和 deploy 不能同步
- excel - 如何在excel中创建两位逗号分隔的数字格式