我的应用程序中有登录屏幕,我在其中根据Internet可用性方案启用和禁用EditText按钮的方法是这样的: - 说明:登录/创建帐户按钮应在互联网可用时启用,并在互联网不可用时禁用,这应该是实时完成的,目前似乎正在按键事件上检查互联网可用性。现在,考虑两个场景
我们输入所有细节,然后启用互联网。 预期结果:应启用登录/创建帐户按钮。 实际结果:登录/创建帐户按钮仍处于禁用状态。
互联网可用,我们输入所有必需的详细信息,按钮启用。现在,如果互联网被禁用 预期结果:应禁用按钮 实际结果:按钮保持启用状态
这是我的代码: -
public void checkFieldsForEmpty() {// this method check Edit text is empty or not
m_LoginBtn = (AppCompatButton) findViewById(R.id.btn_Login);// finding Id login botton
s_szMobileNumber = m_InputMobile.getText().toString().trim();// get mobile number from edit Text
s_szPassword = m_InputPassword.getText().toString().trim();// get password from edit text
// check mobile Internet connectivity
if (NetworkUtil.isConnected(getApplicationContext())) {
// if mobile number and password are Emoty
if (s_szMobileNumber.equals("") || s_szPassword.equals("")) {// check if mobile and password is empty ..
m_LoginBtn.setEnabled(false);// make Login button disabled
m_LoginBtn.setBackgroundColor(Color.rgb(192, 192, 192));// color of login button
} else {
m_LoginBtn.setEnabled(true);// make login button enabled
m_LoginBtn.setBackgroundColor(Color.rgb(0, 80, 147));// set background color on eabled
m_LoginBtn.setOnClickListener(new View.OnClickListener() {// onclick listener on Login Button
@Override
public void onClick(View v) {
postLoginDataToServer();
}
});
}
} else {
try {
CSnackBar.getInstance().showSnackBarError(findViewById(R.id.mainLayout), "No Internet Connection Available", getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
m_LoginBtn.setEnabled(false);
m_LoginBtn.setBackgroundColor(Color.rgb(192, 192, 192));
}
答案 0 :(得分:1)
您应该使用过滤器注册广播接收器:
android.net.conn.CONNECTIVITY_CHANGE
然后,每当您的网络状态发生变化时,您都会收到通知。只需检查您的接收器内是否有连接,并相应地更改按钮状态。
检查android开发者网站以获取更多信息:Monitor for Changes in Connectivity
答案 1 :(得分:0)
您应该在代码中使用setVisibilty方法,下面是示例,您可以根据需要对其进行修改。
private void updateUI(boolean isOnline) {
if (isOnline) {
findViewById(R.id.sign_in_button).setVisibility(View.GONE);
findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
} else {
mStatusTextView.setText(R.string.signed_out);
findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
}
}
您可以在此处查看如何检查互联网连接。 http://yasirameen.com/2016/02/check-network-connection-available/