【问题标题】:android :geo Location using intentandroid :geo 使用意图的位置
【发布时间】: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
  • 在下面查看我的答案

标签: java android android-intent onclick parse-server


【解决方案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();
                }
            }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多