Java 将位置数据传递给Android中的另一个活动
我正在进行Android应用程序开发,我被困在这一点上: 我有两项活动: 第一个叫CurrentLoc,它得到了我当前的位置,在得到位置后,我点击一个按钮,把我带到活动2,这叫短信 我需要做的是,当我点击按钮时,我想将我在第一个活动中收到的位置数据传递给第二个活动 以下是我的第一个活动代码:Java 将位置数据传递给Android中的另一个活动,java,android,Java,Android,我正在进行Android应用程序开发,我被困在这一点上: 我有两项活动: 第一个叫CurrentLoc,它得到了我当前的位置,在得到位置后,我点击一个按钮,把我带到活动2,这叫短信 我需要做的是,当我点击按钮时,我想将我在第一个活动中收到的位置数据传递给第二个活动 以下是我的第一个活动代码: public class Tester2Activity extends Activity { @Override public void onCreate(Bundle save
public class Tester2Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startService(new Intent(Tester2Activity.this,SS.class));
LocationManager mlocManager = (LocationManager)getSystemService (Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener);
Button button1 = (Button) findViewById(R.id.widget30);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent hg = new Intent(Tester2Activity.this, Sms.class);
startActivity(hg);
}
});
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
loc.getLatitude();
loc.getLongitude();
//This is what i want to pass to the other activity when i click on the button
}
@Override
public void onProviderDisabled(String provider)
{
}
@Override
public void onProviderEnabled(String provider)
{
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
{
}
}
}
使用
Intent
extras:在调用startActivity
之前,只需使用Intent.putExtra
将位置纬度和经度复制到Intent中即可
编辑:实际上,位置是可包裹的,因此您可以使用如下方式将其直接传递给目标:
@Override
public void onLocationChanged(Location loc)
{
passToActivity(log);
}
然后将passToActivity
定义为
void passToActivity(Location loc)
{
Intent i = new Intent();
// configure the intent as appropriate
// add the location data
i.putExtra("LOCATION", loc);
startActivity(i);
}
然后您可以使用在第二个活动中检索值。在第一个活动中
Intent hg = new Intent(Tester2Activity.this, Sms.class);
hg.putExtra("latitude",""+latitude);
hg.putExtra("longitude",""+longitude);
startActivity(hg);
在第二个活动中
Bundle bundle = getIntent().getExtras();
double lat=bundle.getDouble("latitude");
double lon=bundle.getDouble("longitude");
感谢您的帮助,但它没有起作用,因为Intent无法从onLocationChanged方法读取任何内容,我不知道为什么?您需要从onLocationChanged方法调用Intent?您只需在获取loc.getLatitude()和loc.getLongitude()时将值赋给两个变量lat,lon按我说的,点击按钮调用活动;我试过了,但同样的问题仍然存在…ON按钮点击无法读取意图,即(hg),因此我无法启动第二个活动…提前感谢…@Rasel请查看我的相关问题:您可以使用outState.putParcelable(“键”,位置)传递它因为Location implement Parcelable interfaceThanks为您提供帮助,我也这么做了,但不起作用,我认为按钮是问题所在…所以我必须在哪里单击按钮…再次感谢。请参阅我的相关问题:您解决了您的问题吗?