如何在 android 工作室从不同的 Activity 开始

how to start from different Activity in android studio

我制作的应用有两个活动。 首先有:

第二个:

下一步怎么做:虽然 SharedPreferences 上有一些数据 - 应用程序将从第二个屏幕启动。

例如,我做了:

if (user!=null && pass!=null){ Intent enterIntent = new Intent(MainActivity.this,SecondActivity.class); 开始活动(进入意图); }

但是,从技术上讲,它首先 运行 firstActivity 然后转到 secondOne。如果有一些方法可以用另一个activity(不是mainOne)启动应用程序?

在输入 Activity.

之前,您将无法检查 SharedPreferences 中是否有值

你可以做的是在显示 UI 之前检查值(在调用 setContentView(R.layout.my_layout) 之前),然后继续,或者开始下一个 Activity.

public class MyStartActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SharedPreferences preferences = getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
        if (preferences.contains("my_key")) {
            // start next Activity
        }

        setContentView(R.layout.my_layout);
    }

}

我不确定它是否会起作用,因为应用程序必须从第一个 activity 开始。首先 activity 检查登录并通过共享首选项然后您可以转到第二个 activity

如果您不希望第一个出现在返回堆栈中,您可以在启动第二个之后调用 finish()(或有意地使用适当的标志)。

另一种方法是只有一个 activity 片段并动态决定开始时设置哪一个。使用片段,您还可以在单​​击按钮或按下后退时轻松更改布局。

试试这个

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SharedPreferences preference = getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
        if (preference.getSting("key",null)!= null) {
            // start new Activity
            //finish this activity so it not in back stack
        } else {

        setContentView(R.layout.my_layout);
        }
    }