我知道通过使用putExtra和getExtra函数调用新活动并将对象值从一个活动传递到另一个活动的东西。但我想传递值而不需要调用并开始新的活动。可能吗 ? 如果是,那么让我知道我该怎么做?是否可以在不调用新活动的情况下获取对象值?
回答
您也可以使用应用程序类声明的全局变量
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,因为我已经有了它。那么还有其他替代品吗? –
如果你不需要这个值,当应用程序再次启动,然后尝试使用静态变量.. –
您可能想要使用处理程序的handleMessage()并在消息中传递该对象。
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
}
};
然后可以调用handler.handleMessage(MSG),你可以将任意对象msg.onj
请给我一些例子或代码,我怎么能做到这一点。 。 。 –
我编辑了我的答案,例如...希望这可以帮助 – CommonMan
你可以把数据库的帮助,像SQLite的,或者你可以去恒类的概念,你可以做一个公共静态变量和数据存储在其他activity.Hope这会一个活动和访问帮你。
是有很多方法的值传递给一个活动:
- 您可以使用
Intent
与FLAG_ACTIVITY_REORDER_TO_FRONT
。在这种情况下,将调用onNewIntent()
方法已启动的活动。 - 您可以使用静态字段或静态方法将新数据传递给您的活动。但这并不是一个好方法,因为即使前台程序和所有静态数据都丢失,应用程序有时也会被终止。
- 您可以使用广播消息将新数据发送到活动。在这种情况下,活动必须注册
BroadcastReceiver
。
我认为这不是很难弥补更多的方式来传递参数。
- 1. Redis:是否可以在不使用集合的情况下获取值?
- 2. 是否可以在不使用href的情况下添加活动类?
- 3. 是否可以在不重新启动的情况下应用vim配置?
- 4. 在不重新启动活动的情况下恢复活动
- 5. 是否可以在不重写代码的情况下重新调整Qt GUI?
- 6. 是否可以在不导入android ScrollView类的情况下创建scrollview对象?
- 7. OpenGL - 我是否可以在不照明的情况下调整对象的Alpha值
- 8. 是否可以在不使用Rails的情况下使用FactoryGirl?
- 9. 是否可以在不禁用JavaScript的情况下禁用AJAX?
- 10. 在不使用请求对象的情况下获取URL
- 11. 是否可以在不拖放的情况下使用Linq-SQL?
- 12. 是否可以在不触及其他实体对象的情况下自动更新所选属性
- 13. 是否可以在不下载整个对象的情况下更改S3对象上的标题?
- 14. 是否可以在不影响第一个对象的情况下将@Entity对象转换为普通对象?
- 15. 是否可以在不使用JavaScript API的情况下调用getPanoramaByLocation?
- 16. 是否可以在不使用UITableViewDelegate的情况下调整UITableViewCell的大小?
- 17. 在Julia中,是否可以在不使用全局变量的情况下将值传递给Expr对象?
- 18. 在匹配情况下是否可以使用Scala案例对象
- 19. 是否可以在不调用`node`的情况下运行Node.js脚本?
- 20. 是否可以在不触发激活事件的情况下关闭窗口?
- 21. 是否可以在不实际更新的情况下显示ruby gem更新?
- 22. 我是否需要在以下情况下调用ThreadLocal.remove
- 23. 是否可以在不显示PreferenceScreen的情况下显示DialogPreference?
- 24. 是否可以在不使用SIGHUP的情况下立即启动pthread?
- 25. 是否可以在不创建新的String对象的情况下访问Java字符串的子字符串?
- 26. 是否可以从PropertyInfo获取“对象”?
- 27. 是否可以在悬停canvas元素的情况下获取工具提示?
- 28. 是否可以在启用或未启用JavaScript的情况下在同一页面中获取表单的值?
- 29. 在不知道名字的情况下获取对象的属性值?
- 30. 在不创建对象的情况下调用类的方法
感谢来自印度的Suri。但是存储数据呢?您是否需要使用存储其他活动数据的方法更新代码? –
那么,你可以使用setState(“state set”)以相同的方式存储数据。 –
这不是存储数据的好方法。我曾经使用这种方法,但似乎很容易出错。例如,如果以这种方式保存一些数据,然后运行需要大量内存的另一个应用程序,则应用程序将被终止,并且此全局状态将丢失。 – Michael