如何在Android中编辑文本时在文本完成后调用方法
我试图通过从编辑文本中获取输入来搜索地图上的位置,我有两个编辑文本;一个是源位置,另一个是目的地,当用户输入源目的地并移动到下一个(或者我们可以说焦点丢失)时,“用户输入的位置在地图上用标记指出” 但在这里,当我输入古吉拉特大学时,它将古吉拉特大学视为不同的价值观如何在Android中编辑文本时在文本完成后调用方法,android,android-edittext,Android,Android Edittext,我试图通过从编辑文本中获取输入来搜索地图上的位置,我有两个编辑文本;一个是源位置,另一个是目的地,当用户输入源目的地并移动到下一个(或者我们可以说焦点丢失)时,“用户输入的位置在地图上用标记指出” 但在这里,当我输入古吉拉特大学时,它将古吉拉特大学视为不同的价值观 et.addTextChangedListener(new TextWatcher() { @Override public void b
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// findPlaceWaypoints();
}
@Override
public void afterTextChanged(Editable s) {
findPlaceWaypoints();
}
});
但它搜索每个单词,即MADHYA PRADES,然后搜索MADHYA和PRADES以及与MADHYA PRADES相关的所有可能单词。我想将所有文本都转换为一个值,该值在编辑文本中键入
这是我的findPlaceWaypoints方法:
private void findPlaceWaypoints() {
String location = et.getText().toString().toLowerCase();
if (location == null || location.equals("")) {
// Toast.makeText(getBaseContext(), "No Place is entered", Toast.LENGTH_SHORT).show();
return;
}
String url = "https://maps.googleapis.com/maps/api/geocode/json?";
try {
// encoding special characters like space in the user input place
location = URLEncoder.encode(String.valueOf(location), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String address = "address=" + location;
String sensor = "sensor=true";
// url , from where the geocoding data is fetched
url = url + address + "&" + sensor;
// Instantiating DownloadTask to get places from Google Geocoding service
// in a non-ui thread
DownloadTask downloadTask = new DownloadTask();
// Start downloading the geocoding places
downloadTask.execute(url);
}
试试这个,它可能会帮助你:
edSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String strname = edSearch.getText().toString().toLowerCase();
}
@Override
public void afterTextChanged(Editable s) {
}
});
我认为它与edittext无关,它与地理编码api有关。它通常发送的响应是一组对象(位置),如下面的模板
results[]: {
types[]: string,
formatted_address: string,
address_components[]: {
short_name: string,
long_name: string,
postcode_localities[]: string,
types[]: string
},
partial_match: boolean,
place_id: string,
postcode_localities[]: string,
geometry: {
location: LatLng,
location_type: GeocoderLocationType
viewport: LatLngBounds,
bounds: LatLngBounds
}
}
这些对象是与查询匹配的所有位置(即MADHYA PRADES、MADHYA、PRADES)
您可以检查响应对象中名为“partial_match”的字段是否完全匹配。如果部分匹配为false,则为精确匹配,否则为部分匹配
希望这能有所帮助。您能详细解释您的查询吗?您需要它进行搜索吗?如果您使用与古吉拉特邦大学相同的编辑文本编写,请向我们展示您在
findPlaceWaypoints()中编写的代码代码>方法见我在主要问题中添加的thx for the Efforts仍然将每个单词视为不同的值,