我有一个首先启动的默认活动(活动A),然后用户可以转到另一个活动(活动B)。在一些工作之后的B中,用户设置共享偏好。下次应用程序启动时我想要检查A如果共享首选项为空,则转到B.并且我将其放在
下面 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
它封装了整个onCreate。当应用程序启动时,它跳过A,在B上我显示布局和带有NullPointerException的FC。
有人有过这方面的经验吗?
OR
任何一个人在跳过A时都有更好的主意吗?
答案 0 :(得分:0)
回答我自己的问题。我在onDestroy中有一个位置监听器,因为它没有初始化,因为跳过onCreate它返回了NullPointer。
答案 1 :(得分:0)
Simon,你必须使用共享的prefrences。将您的数据保存在共享的首选项中。然后,在您希望再次使用共享预取中的数据的活动中,获取相同共享首选项的实例。获取数据并使用它。
完成此代码
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
可能你会得到一个见解