我是 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/服务等)
您有几个选择:
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/