如果 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
}
我在我的项目中找到并实现了一个功能,用户可以在 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
}