我知道已经有一个工具可以检查Java中的网址。但是我不知道为什么这种逻辑不起作用。即使输入正确,警报消息也不会消失。谢谢。
@Override
public void onClick(View view) {
if(checkInput()){
String email = getResources().getString(R.string.email);
Intent i = new Intent();
i.setData(Uri.parse("mailto:"));
startActivity(Intent.createChooser(i, "Send mail..."));
}else{
AlertDialog alert = new AlertDialog.Builder(getContext()).create();
alert.setMessage(getResources().getString(R.string.valid_input));
alert.show();
}
}
public boolean checkInput(){
return (uri.startsWith("http:")&&!uri.equals(""));
}
答案 0 :(得分:0)
将支票从更改为
(uri.startsWith("http:")&&!uri.equals(""))
对此
(uri.startsWith("http"))
首先,url
可以以http
或https
开头,因此上面的检查不涉及第二种情况。
其次,如果startsWith
已通过,则无需检查!uri.equals("")
答案 1 :(得分:0)
将return语句更改为
return (uri.startsWith("http")||uri.startsWith("https"))
那你很好。告诉我是否还有其他问题。
答案 2 :(得分:0)
在我的项目中,我这样使用:
if (CheckInternetConection.isInternetConnection(SplashScreenActivity.this)) {
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("vnd.android.cursor.dir/email");
String to[] = {"bugfreeRam@gmail.com"};
emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
emailIntent.putExtra(Intent.EXTRA_STREAM, path);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Database File");
startActivity(Intent.createChooser(emailIntent, "Send email..."));
} else {
new SweetAlertDialog(SplashScreenActivity.this)
.setTitleText("Alert!")
.setContentText(getResources().getString(R.string.app_connection))
.show();
}