0

我有一个首先启动的默认活动(活动 A),然后用户可以从那里转到另一个活动(活动 B)。在 B 中经过一些工作后,用户设置了一个共享偏好。下次应用程序启动时,如果 sharedpreference 为空,我想检查 A 以转到 B。如果就在下面,我把它放在

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

它封装了整个onCreate。当应用程序启动时,它会跳过 A 并在 B 上显示布局和带有 NullPointerException 的 FC。

有人有这方面的经验吗?

或者

有人对跳过A有更好的想法吗?

4

2 回答 2

0

回答我自己的问题。我在 onDestroy 中有一个位置侦听器,因为它由于跳过 onCreate 而没有初始化它返回 NullPointer。

于 2010-07-29T00:27:38.073 回答
0

那么西蒙你必须使用共享偏好。将您的数据保存在共享偏好中。然后在要使用共享偏好中的数据的活动中再次获取相同共享偏好的实例。获取数据并使用它。

浏览这段代码

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();
    }
} 

可能你会有所了解

于 2010-07-29T13:14:56.753 回答