【问题标题】:passing value another activity传递价值另一个活动
【发布时间】:2016-09-08 06:59:48
【问题描述】:

我创建了一个 WeatherSyncAdapterClass,我创建了一个方法并从 GPS 获取纬度和经度值。

public void getGPS(){
    Context context = WeatherSyncAdapter.super.getContext();
    gps = new GpsTrack(context);
    if (gps.canGetLocation()) {
        while (lat == 0.0 && lon == 0.0) {
            setLat(gps.getLatitude());
            setLon(gps.getLongitude());
            latitude = Double.toString(lat);
            longitude = Double.toString(lon);
        }
    }
    else {
        gps.showSettingsAlert();
    }
}

...然后我使用以下语句设置“locationsetting”的 URI 值:

    public void setLatLon(double a, double b) {
    //Double.toString(weather.getLatitude()+weather.getLongitude())
    LatLon = Double.toString(a+b);
}

(我只是通过添加纬度和经度来设置位置设置的uri ^_^,我知道这很愚蠢)

我的问题是如何将“LatLon”值传递给“mainActivity”以匹配 URI?我知道意图会传递价值,但我认为那将是不好的解决方案,因为会(可能)打开另一个活动。

请帮帮我:(((

【问题讨论】:

  • 您想将您的值从 adapter 传递到 activity 类吗?
  • 使用static变量。
  • 你试过在 mainActivity 类中使​​用 startActivityForResult 吗?
  • 从 mainActivity 中,你想调用另一个类并从中获取经度和纬度值,而不改变 GUI,对吧?
  • 无法理解你的意思,你到底想做什么?

标签: java android parameter-passing android-contentprovider android-syncadapter


【解决方案1】:
Intent intent = new Intent(current.this, mainActivity.class);
intent.putExtra("Lat",Double.toString(a));
intent.putExtra("Lon",Double.toString(b));
startActivity(intent);

使用意图,您可以将值传递给其他活动。 intent.putExtra 方法/函数将以键值对的形式发送数据。

MainActivity.class 中,您可以使用以下代码从意图中检索数据

Intent intent = getIntent();
String latitude = intent.getStringExtra("Lat");
String longitude = intent.getStringExtra("Lon");

【讨论】:

  • 是的,我想将值从 syncAdapter 传递给 mainActivity,Intent 它不起作用,因为我在“startActivity”上看到“红色”,我该怎么办:(
  • 您必须获取上下文引用,然后尝试 startActivity。您可以使用以下代码获取上下文引用 getApplicationContext().startActivity(intent)。如果这没有帮助,您可以放置​​代码以便我修复它。
猜你喜欢
  • 2015-11-21
  • 2012-11-25
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 2016-03-08
  • 2012-07-16
相关资源
最近更新 更多