【发布时间】:2011-11-08 03:32:20
【问题描述】:
我知道调用新活动并使用 putExtra 和 getExtra 函数将对象值从一个活动传递到另一个活动。但我想在不调用的情况下传递值并开始新的活动。可能吗 ? 如果是,请告诉我该怎么做?
【问题讨论】:
标签: android android-layout android-emulator android-widget android-ndk
我知道调用新活动并使用 putExtra 和 getExtra 函数将对象值从一个活动传递到另一个活动。但我想在不调用的情况下传递值并开始新的活动。可能吗 ? 如果是,请告诉我该怎么做?
【问题讨论】:
标签: android android-layout android-emulator android-widget android-ndk
您也可以使用 Application 类来声明全局变量
class Globalclass extends Application {
private String myState;
public String getState(){
return myState;
}
public void setState(String s){
myState = s;
}
}
class TempActivity extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
更新:
查看这个关于如何做到这一点的不错的教程。
【讨论】:
为此,您可以使用static variable 或SharedPreferences,或者如果您的数据量很大,那么您可以使用SQlite。
【讨论】:
您可以借助 SQLite 之类的数据库,或者您可以使用 Constant 类概念,您可以在其中创建一个公共静态变量并将您的数据存储在一个活动中并在另一个活动中访问。希望这会对您有所帮助。
【讨论】:
有很多方法可以将值传递给活动:
Intent 与FLAG_ACTIVITY_REORDER_TO_FRONT 一起使用。在这种情况下,onNewIntent() 方法将为已启动的活动调用。BroadcastReceiver。我觉得多编几个方法来传递参数并不是很困难。
【讨论】:
您可能想要使用处理程序的 handleMessage() 并在消息中传递对象。
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
}
};
然后你可以调用handler.handleMessage(msg),你可以将任何对象分配给msg.onj
【讨论】: