2

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

类.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. 然后我有一个类可以获取位置。

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

请注意,我还在学习android,

先感谢您!

4

3 回答 3

1

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

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

于 2012-05-19T00:03:58.323 回答
0

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

于 2012-05-19T00:21:29.783 回答
0

一种方法是扩展 Application 类并使用数据获取实例,将其填充到一个类中并在另一个类中使用它。在 StackOverflow 上查看这个问题。

基本上,您所做的是扩展 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();
    ...
  }
}

还有其他方法,但是这个解决方案还不错!

于 2012-05-19T00:04:03.713 回答