электронная почта матч булева логика Android - PullRequest
0 голосов
/ 01 февраля 2019

Я знаю, что уже есть инструмент для проверки веб-адреса в 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(""));
}

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

Измените ваше заявление о возврате на

return (uri.startsWith("http")||uri.startsWith("https"))

, тогда все готово.Скажите, есть ли другие проблемы?

0 голосов
/ 01 февраля 2019

В моем проекте я использую так:

    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();
                                }
0 голосов
/ 01 февраля 2019

Измените ваш чек с

(uri.startsWith("http:")&&!uri.equals(""))

на этот

(uri.startsWith("http"))

Во-первых, url может начинаться либо с http, либо с https, так что ваш чек вышене охватывать второй случай.Во-вторых, если startsWith уже пройден, нет необходимости проверять !uri.equals("")

...