我在我的项目中找到并实现了一个函数,用户可以在EditText字段中输入一个地址并按下“SHOW ON MAP”按钮,它将传递用户输入的文本并将该地址传递给谷歌地图。
如下所示:
然而,有一个小问题,即使用户没有在我的应用程序“EditText字段中输入任何内容,它仍会将用户引导至Google地图(但搜索栏中没有任何内容)。
如何更改代码,以便在EditText字段中没有文字且用户点击“在地图上显示”时,我的应用会提示“请输入地址”?
我一直在搞乱,似乎无法让它发挥作用。
以下是我的代码:
{{1}}
答案 0 :(得分:1)
尝试添加
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();
}
...
答案 1 :(得分:0)
尝试用this
getActivity()
Toast.makeText(this, getString(R.string.maps_error), Toast.LENGTH_SHORT).show();
答案 2 :(得分:0)
检查textToUse变量的长度。如果长度为0或更小,然后是某个因子,那么您可以使用Toast并通过进入意图块返回。 或者,您可以在编辑文本中添加onTextChangedListener,如果文本长度低于某个因子,则禁用该按钮。
答案 3 :(得分:0)
在开始活动之前将以下条件置于您的代码
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();
}
}
答案 4 :(得分:0)
您应该始终检查您的搜索框是否包含任何文字。
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();
}
答案 5 :(得分:0)
尝试使用像这样的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
}