当我们启动一个Activity时,无论如何都可以访问该类的对象,这样我就可以在类中调用set数据。像
这样的东西 Intent intent=new Intent (a.this, b.class);
startActivity(intent);
现在我知道堆上应该有一个b.class对象,在创建对象的onCreate之前,我想将一些数据传递给类。现在我知道我可以对Bundles做同样的事情,但是通过Bundles传递对象变得很难看。如果我有b.class的引用,我可以调用类的方法?我有意义吗?这可能吗 ?
亲切的问候,
答案 0 :(得分:0)
这将是你的Manifest,这个类可用于设置值,然后在任何Project java Class中获取值
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="package name"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/somee" android:label="@string/app_name" android:noHistory="true" android:name="MainApplication" >
<activity android:name=".first Page" android:noHistory="true"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
然后在您的主要应用程序
public class MainApplication extends Application{
private static MainApplication instance;
private String _sUserId;
@Override
public void onCreate(){
super.onCreate();
instance=this;
}
public static Main Application getInstance(){
return instance;
}
public void setUserId(String s){
_sUserId=s;
}
public String getUserId(){
return _sUserId;
}
您可以在任何java文件中获取值和设置值,例如
MainApplication o=((MainApplication)getApplicationContext());
Integer UserID=o.getUserID();//you need to set user where you want to to get the value of user id
答案 1 :(得分:0)
“这可能吗?” - 可能是。如果两个活动在同一个过程中“存在”,您可以从A获取/保持对B的引用,并调用任何公共方法和/或写入任何公共变量。但是:
“我有道理吗?” - 可能:不。对于初学者来说,保持对另一个活动的引用可能意味着你的内存占用量将大于所需(并且可能比你预期的要大:你的活动B可能用于夸大B的布局,如果不是B留在身边)。另外,如果您的活动是由A之外的其他组件启动,您会怎么做?每个这样的组件是否需要引用B才能事先调用必要的公共方法/变量?不是很好。
通常,活动的界面应根据可用于启动它的Intent来描述。其中包括:启动它的操作,应该执行操作的数据,以及设置活动的附加功能。既然你已经说过你知道如何使用Bundles(而另一个,相当不完整,答案给你一个简单的例子)我只会说:为此而去。
答案 2 :(得分:0)
您可以将全局变量与关键字static
一起使用。在类中定义您的对象,例如SampleClass,然后在onCreate方法SampleClass.yourObject中调用该变量。