在Android Studio中使用来自不同方法中的一个方法的变量值

时间:2015-12-22 12:43:45

标签: java android

首先很抱歉在过去的几周内问了这么多问题,我是android studio的新手,并且很难自己弄清楚很多核心概念。 关于这个问题,我有一个项目设置,所以无论你输入什么" 1.2,-1.2"你可以找到两个地方之间的距离,你的答案会显示为吐司。但是,我希望纬度和长度是变量。

Button button1=(Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Double distance = 1.0;
                int val = 1;

                Toast.makeText(getApplicationContext(), "You are "     + String.valueOf(distance
                        (1.2, -1.2, 1.3, -2.4, "K")) + "kilometers away     from the flag", Toast.LENGTH_LONG).show(); }
        });

我有以下两种方法,我希望上面的参数值LatLng和currentLatitude以及currentLongitude加倍。

    private void setUpMap() { 
mMap.addMarker(new MarkerOptions().position(new LatLng(53.3835,6.5996)).title("Marker"));         
}

private void handleNewLocation(Location location) {
        Log.d(TAG, location.toString());

        double currentLatitude = location.getLatitude();
        double currentLongitude = location.getLongitude();

        LatLng latLng = new LatLng(currentLatitude,     currentLongitude);

        //mMap.addMarker(new MarkerOptions().position(new     LatLng(currentLatitude, currentLongitude)).title("Current     Location"));
        MarkerOptions options = new MarkerOptions()
                .position(latLng)
                .title("I am here!");
        mMap.addMarker(options);
          mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    }

非常感谢有关如何做到这一点的任何见解。根据我所读的内容,我知道我需要将LatLng变量拆分为字符串,但到目前为止我能想到的只有

1 个答案:

答案 0 :(得分:2)

如果这两个方法属于同一个类,那么只需要创建该类的那两个变量属性,否则你需要将它们传递给相应的类。我将以比您的代码更简单的示例进行演示:

public class MyClass(){

    private int lat;
    private int longt;

//constructors ,setters and getters

    public void method1(){

//affecting those attributes with values
        lat = 1;
        longt = 2;

    }

    public void method2(){

        //simply access the attributes
        System.out.println("lat "+lat+"  longt  "+longt);

    }


}

阅读评论,我想我需要进一步向你解释,当一个变量在一个方法中声明时,它是该方法的本地变量,因此它将被"销毁" (垃圾收集或w.e)当该方法完成它的工作。但是当一个变量在一个方法之外声明时,就像类的属性一样,你仍然可以在需要的时候引用它,直到该类的实例被"销毁"。