java - startActivity() 之前的操作

标签 java android android-activity android-intent

我是 Android 开发新手,在创建新 Activity 时遇到问题。

我想在开始之前使用我的 Activity 。例如,我已经尝试过:

MyActivity menu = new MyActivity();
menu.setXmppreception(reception);
Intent intent = new Intent(Screen.this,MyActivity.class);
Screen.this.startActivity(intent);

但是,我的“菜单”和“MyActivity.class”不是同一个实例。因此我尝试过:

MyActivity menu = new MyActivity();
menu.setXmppreception(reception);
Intent intent = new Intent(Screen.this,menu);
Screen.this.startActivity(intent);

但是这不起作用... 您有解决方案可以帮助我吗?

感谢您的帮助,并对英语不好表示抱歉。

最佳答案

你不能按照你想要的那样做,如果你想在一个 Activity 之间传递数据,你必须使用 Extras,并且你只能传递可序列化的项目。

第一个上下文(可以是 Activity/服务等)

您有几个选择:

1) 使用Bundle来自Intent :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2)创建一个新的包

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) 使用putExtra() Intent的快捷方法

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);

新上下文(可以是 Activity/服务等)

Intent myIntent = getIntent(); // this getter is just for example purpose, can differ
if (myIntent !=null && myIntent.getExtras()!=null)
     String value = myIntent.getExtras().getString(key);
}

注意: bundle 具有适用于所有基本类型、Parcelables 和 Serializeds 的“get”和“put”方法。我只是将字符串用于演示目的。

关于java - startActivity() 之前的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3307011/

相关文章:

java - 如何在启动时运行 jar 文件(Ubuntu 11.10)?

java - 启停守护进程和java程序

java - 泛型怎么可能是 <Map.Entry<KeyType,ValueType>>

java - 如何访问 Facelets 页面中的 session 属性

android - 如何从同一 Activity 中按钮上的 OnClickListener 内部获取 FragmentActivity 中的 TextView 引用

Android:如何重新启动 Activity

android - 请求权限仅显示已授予

android - Wi-fi 网络强度 (dBm) 可以为正值吗?

android - 改造,顶级 json 对象更改名称

android - 重新启动任务中的所有 Activity