Android getter setter返回null数据?

Mac*_*Mac 1 java getter setter android getter-setter

我有一个类ApplicationDetails,使用getter和setter方法.

public class ApplicationDetails {
    String supportURL;
    String companyURL;
    String copyRightText;

    // with getter and setter methods 

}
Run Code Online (Sandbox Code Playgroud)

我在启动画面活动中设置所有数据.

ApplicationDetails appDetails = new ApplicationDetails();
String supportURL = getResources().getString(R.string.support_url);
appDetails.setSupportURL(supportURL);
Run Code Online (Sandbox Code Playgroud)

对于示例我只是从字符串文件设置数据,但在应用程序中它来自不同的来源.

但是当我尝试访问不同活动中的数据时,它返回null值.例如

public class AboutViewController extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ApplicationDetails appDetails = new ApplicationDetails();
        System.out.println(" app support url " + appDetails.getSupportURL());
    }

}
Run Code Online (Sandbox Code Playgroud)

产量

I/System.out(2242):  app support url null
Run Code Online (Sandbox Code Playgroud)

任何帮助.

Tar*_*kiv 5

您将获得null,因为您创建了一个新对象,并且所有字段都初始化为零.

在您的情况下,我看到这些字段将通过应用程序相同,因此您可以使用Singleton模式并仅为您的应用程序实例化一个对象,并在以后引用它.每次引用它时都不需要创建新对象.这个类没关系,你也可以使它们成为常量.(我猜这些变量不会因执行而改变)