1

当我的应用程序启动时,它会检查它是否存储了登录凭据。如果没有,它会启动另一个活动来提示用户输入这些凭据。我的问题是,当提示活动开始时,第一个活动继续执行并以空指针结束,因为提示活动尚未返回所需的数据

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    tv = new TextView(this);
    setContentView(tv);

    promptForLoginInfo(); //method creates intent and starts activity

    displayCredentials(); //prints data to screen
}

输出为:“null”,因为程序在登录提示活动返回之前执行“displayCredentials()”。

有人知道该怎么做吗?

4

3 回答 3

5

您的“promptForLoginInfo()”方法应该调用startActivityForResult。您的“displayCredentials()”方法不应在 onCreate() 方法中调用,而应在onActivityResult方法中调用。

于 2010-05-12T14:57:12.127 回答
1

在 promptForLoginInfo(); 你需要启动activityForResult。那么你需要移动 displayCredentials(); 从 onCreate 到 onActivityResult

于 2010-05-12T14:58:16.853 回答
0

您是否尝试在调用 displayCredentials() 之前检查存储的凭据?如果未找到凭据,您可以通过 startActivityForResult() 方法启动活动,并在提示活动在 onActivityResult() 中完成后调用 displayCredentials()。

于 2010-05-12T14:57:36.957 回答