【问题标题】:How to skip an activity? android如何跳过活动?安卓
【发布时间】:2010-07-29 00:03:46
【问题描述】:

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

下,我将其放在
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

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

有人有这方面的经验吗?

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

【问题讨论】:

    标签: android android-activity skip


    【解决方案1】:

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

    浏览这段代码

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

    或许你会有所了解

    【讨论】:

    • 此外,在开始 Activity A 之前完成() B。
    • yea finish() B 在开始活动 A 之前成功了。我以任何方式使用 SharedPreferences。阅读我对 NullPointer 的回答。谢谢和欢呼
    • 很高兴知道您已修复它。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多