android:通过类传递变量?

时间:2012-05-18 23:57:27

标签: java android parameter-passing

我想知道如何通过类传递数据/变量?

Class.java

public class AddItem extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
         mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
         mlocListener = new CurrentLocation();
         mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
    }   
}

public void sendDataDetail(View v){
    // This is where my HTTPPOST goes, need the location here
}

public class CurrentLocation implements LocationListener {
    @Override
    public void onLocationChanged(Location loc) {
        // TODO Auto-generated method stub
        loc.getLatitude();
        loc.getLongitude();
        String Text = "My Current Location is: " + "Lat = " + loc.getLatitude() + "Long = " + loc.getLongitude();
        Toast.makeText(getApplicationContext(),Text,Toast.LENGTH_SHORT).show();
    }
}
基本上,我在onCreate中有CurrentLocation(),然后在sendDataDetail中有一个HTTPPOST脚本。然后我有一个获得该位置的课程。

如何获取该位置并将其发送至sendDataDetail?我应该采取什么方法?

请注意我还在学习安卓,

提前谢谢!

3 个答案:

答案 0 :(得分:1)

在Android中,sharedpreferences用于在类之间传递信息。

这是我所知道的解释其工作原理的最简单的例子。 http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html

答案 1 :(得分:0)

一种方法是扩展Application类并获取包含数据的实例,将其填充到一个类中并在另一个类中使用它。请参阅StackOverflow上的this问题。

基本上你所做的是扩展Application对象并添加你的字段(在你的情况下的位置)并将它设置在一个地方并在另一个地方获得它。以下是我提到的链接中的示例代码:

class MyApp extends Application {

  private String myState;

  public String getState(){
    return myState;
  }
  public void setState(String s){
    myState = s;
  }
}

class Blah extends Activity {

  @Override
  public void onCreate(Bundle b){
    ...
    MyApp appState = ((MyApp)getApplicationContext());
    String state = appState.getState();
    ...
  }
}

还有其他方法,但这个解决方案非常好!

答案 2 :(得分:0)

在某些用例中,您可以将静态变量放在某处以供两个类引用。这将是最简单的,它会让学生们颤抖,这总是一件好事。好吧,当然,除非他们是对的。