传递价值另一项活动

时间:2016-09-08 06:59:49

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

我创建了一个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?我知道意图会传递价值,但我认为这将是糟糕的解决方案,因为(也许)会打开另一个活动。

请帮助我:((

1 个答案:

答案 0 :(得分:3)

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");