如果 Edittext 没有输入文本,则提示 toast

Prompting toast if Edittext has no text entered

我在我的项目中找到并实现了一个功能,用户可以在 EditText 字段中输入地址并按下按钮 "SHOW ON MAP",它将传递用户输入的文本并传递该地址到 Google 地图。

如下图:

但是,有一个小问题,即使用户没有在我的应用程序“EditText 字段中输入任何内容,它仍然会引导用户到 Google 地图(但是搜索栏中没有任何内容) .

如何更改代码,以便如果 EditText 字段中没有文本并且用户单击 "SHOW ON MAP",我的应用程序会提示说 "Please enter address"?

我一直在胡闹,似乎无法正常工作。

下面是我的代码:

  /* -------------------- Methods to use Maps -------------------- */

       

     public void onMaps(View v){

        

                // Checking if Network is available

                if (!Utilities.isNetworkAvailable(this)){

                    showDialogFragment(NETWORK_ERR_DIALOG, "network_err_dialog");

                }

                else{

                    // Obtaining text shown by the TextEdit (it could be different from the recognized one cause user can modify it)

                    textToUse = companyAddress.getText().toString();

                    textToUse = textToUse.replace(' ', '+');

                    try {

                        Intent geoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + textToUse));

                        startActivity(geoIntent);

                    } catch (Exception e){

                        Toast.makeText(this, getString(R.string.maps_error), Toast.LENGTH_SHORT).show();

                    }

                }

            }

尝试用 getActivity()

替换 this
Toast.makeText(this, getString(R.string.maps_error), Toast.LENGTH_SHORT).show();

检查 textToUse 变量的长度。如果长度为 0 或小于某个因素,那么您可以通过进入意图块来使用吐司和 return。 或者,您可以将 onTextChangedListener 添加到您的编辑文本,并在文本长度低于某个因素时禁用该按钮。

尝试添加

if (textToUse.length() == 0) {
    Toast.makeText(this, "Please Enter Address", Toast.LENGTH_SHORT).show();
    return;
}

在你的 try/catch 块之前,像这样。

...
textToUse = companyAddress.getText().toString();
textToUse = textToUse.replace(' ', '+');
// begin inserted code
if (textToUse.length() == 0) {
    Toast.makeText(this, "Please Enter Address", Toast.LENGTH_SHORT).show();
    return;
}
// end inserted code
try {
    Intent geoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + textToUse));
    startActivity(geoIntent);
} catch (Exception e){
    Toast.makeText(this, getString(R.string.maps_error), Toast.LENGTH_SHORT).show();
}
...

在开始之前在您的代码中添加以下条件activity

        textToUse = companyAddress.getText().toString();
        textToUse = textToUse.replace(' ', '+');
        if (textToUse.trim().equals("") && textToUse.trim().equals("+")) {
            Toast.makeText(this, getString(R.string.maps_error), Toast.LENGTH_SHORT).show();
        } else {
            try {
                Intent geoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + textToUse));
                startActivity(geoIntent);
            } catch (Exception e) {
                Toast.makeText(this, getString(R.string.maps_error), Toast.LENGTH_SHORT).show();
            }
        }

您应该经常检查您的搜索框是否有任何文字。

if (companyAddress.getText().length() > 0) {

            textToUse = companyAddress.getText().toString();

            textToUse = textToUse.replace(' ', '+');

            try {
                Intent geoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + textToUse));
                startActivity(geoIntent);
            } catch (Exception e) {
                // Handle error
            }
        } else {
            Toast toast = Toast.makeText(context, "Enter Text in Search Field", Toast.LENGTH_SHORT).show();
        }

像这样尝试使用 isEmpty()

EditText myedittext = (EditText) findViewById(R.id.youredittext);
    String edit = myedittext .getText().toString();

                if(edit.isEmpty()){
                           Toast.makeText(youractivity.this, "please enter adress" , Toast.LENGTH_SHORT).show();
                          }else{
                                     // what you want like search the map
                                    }