android :geo 使用意图的位置
Posted
技术标签:
【中文标题】android :geo 使用意图的位置【英文标题】:android :geo Location using intent 【发布时间】:2017-02-26 12:36:28 【问题描述】:我有一个 ListView,当我单击单个项目时,它会转到单个项目视图。在每个单项查看页面中都有一个位置按钮。单击位置按钮时我需要去谷歌地图
经度和纬度像这样保存在数据库中。 我想动态调用它 在每列的每个单元格中,数据都是这样存储的,
数据在解析数据库中存储为对象,而不是字符串
"lat":25.1250241,"lng":55.3752069
谁知道请告诉我如何从中获取数据?
btn = (Button) findViewById(R.id.button5) ;
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
btn = (Button) findViewById(R.id.button56) ;
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
String data = String.format("geo:%s,%s", latitude, longitude);
intent.setData(Uri.parse(data));
startActivity(intent);
);
【问题讨论】:
表示你需要从""lat":25.1250241,"lng":55.3752069"这个String获取数据。 是的,这是一个单元格内的数据@Chetan 在下面查看我的答案 【参考方案1】:使用Below方法解析String中的数据,当我传递字符串时,您需要在下面的方法中传递一个参数。
private void parseJsonData()
try
String jsonString = "\"lat\":25.1250241,\"lng\":55.3752069";
Object object = new JSONTokener(jsonString).nextValue();
if (object instanceof JSONObject)
JSONObject jsonObject = (JSONObject) object;
double lat = Double.parseDouble(jsonObject.optString("lat"));
double lng = Double.parseDouble(jsonObject.optString("lat"));
Log.i(getClass().getSimpleName(),"lat="+lat);
Log.i(getClass().getSimpleName(),"lng="+lng);
catch (JSONException e)
e.printStackTrace();
【讨论】:
嗨,谢谢,但这不是静态数据,数据结构如上,但数据是来自数据库的动态数据,类似于您昨天回答的电话号码代码..@Chetan 是的,你需要传递你的字符串来代替 jsonString 。 哦,谢谢..我可以在点击事件中使用此代码@Chetan 还有一件事,数据作为对象存储在解析数据库中,而不是字符串@Chetan 是的,您可以在点击事件中使用它。【参考方案2】:终于找到方法了..
这是我用来获取坐标的代码
showCorporate = (Button) findViewById(R.id.individualEmail);
showCorporate.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
String[] location = corporateLocation.split(",");
double lat, lng;
try
lat = fetchDouble(location[0], true);
lng = fetchDouble(location[1], false);
Log.d("Co-Ordinates",""+lat+", "+lng);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
String data = String.format("geo:%s,%s", lat, lng);
intent.setData(Uri.parse(data));
startActivity(intent);
catch (NullPointerException npe)
Toast.makeText(SingleCorporate.this, "Sorry No Location Available!", Toast.LENGTH_SHORT).show();
);
【讨论】:
以上是关于android :geo 使用意图的位置的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 中获取准确的 GEO 位置,例如 lat 和 long
geo:latitude,longitude?z=zoom in android 带我到我当前的位置
Buildfire:buildfire.geo.getCurrentPosition 不适用于移动应用(android 和 ios)和 PWA