我想知道如何通过类传递数据/变量?
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
?我应该采取什么方法?
请注意我还在学习安卓,
提前谢谢!
答案 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)
在某些用例中,您可以将静态变量放在某处以供两个类引用。这将是最简单的,它会让学生们颤抖,这总是一件好事。好吧,当然,除非他们是对的。