尝试传输double时意图“无法解析构造函数”

时间:2016-05-19 18:08:44

标签: android android-intent android-activity navigation double

我正在尝试使用我在一个活动中获得的位置数据进行另一个活动的计算,并尝试传输数据我尝试使用Intent。但是,当我尝试添加Intent时,我不断收到错误

  

'无法解析构造函数'

我正在尝试传递数据的活动如下所示:

import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.util.Log;

public class CurrentLocationListener implements LocationListener {

@Override
public void onLocationChanged(Location location)
{
    if(location != null)
    {
        Double currentLat = location.getLatitude(); 
        Double currentLong = location.getLongitude(); 
        Log.e("Latitude :", "" + location.getLatitude());
        Log.e("Longitude :", "" + location.getLongitude());

        Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra("Lat", currentLat);
        intent.putExtra("Long", currentLong);
        CurrentLocationListener.this.startActivity(intent);
    }
 }

这就是我在尝试使用其他活动中的数据的地方:

public class MainActivity extends Activity implements SensorEventListener {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

parseButton.setOnClickListener(
                new Button.OnClickListener()
                {
                    public void onClick(View inputButtonView)
                        {
                            String latInputString = latFind.getText().toString();
                            String longInputString = longFind.getText().toString();
                            double latInputDouble = Double.parseDouble(latInputString);
                            double longInputDouble = Double.parseDouble(longInputString);

                            double dLon = (longInputDouble-currentLong);
                            double y = Math.sin(dLon) * Math.cos(latInputDouble);
                            double x = Math.cos(currentLat)
                                    *Math.sin(latInputDouble) - Math.sin(currentLat)
                                    *Math.cos(latInputDouble)*Math.cos(dLon);
                            double targetBearing = Math.toDegrees((Math.atan2(y, x)));
                            targetBearing = (360 - ((targetBearing + 360) % 360));
                        }
                });

所以我要问的是:如何才能将纬度和经度的双倍数据从一个活动正确转移到另一个活动?

1 个答案:

答案 0 :(得分:0)

这是因为您需要将应用程序或活动作为第一个参数传递给Intent构造函数。

你的 CurrentLocationListener 没有扩展Activity类。它不是Activity.So你不能在intent构造函数中传递'this'