简体   繁体   English

在Android中安装应用程序后如何显示欢迎屏幕

[英]How to display welcome screen after the installation of the app in Android

I am trying to add a welcome screen in my app,Which displays at the very first time installation.In my case welcome screen always shown on every time the app gets open... 我正在尝试在我的应用程序中添加一个欢迎屏幕,第一次安装时会显示该屏幕。在我的情况下,每次打开该应用程序时总是显示欢迎屏幕...

This is my code I have developed to enable welcome screen in my app 这是我开发的用于在应用程序中启用欢迎屏幕的代码

public class SplashScreen_Activity extends AppCompatActivity {

    private ViewPager viewPager;
    private LinearLayout layoutDot;
    private TextView[] dotstv;
    private int[] layouts;
    private Button btnNext;
    private Button btnSkip;
    private MyPagerAdapter myPagerAdapter;

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

        if (!isFirstTimeStartApp()) {
            startMainActivity();
            finish();
        }

        setStatusbarTransparent();

        setContentView(R.layout.activity_splash_screen_);

        viewPager = findViewById(R.id.view_pager);
        layoutDot =(LinearLayout) findViewById(R.id.dotlayout);
        btnNext =(Button) findViewById(R.id.btn_next);
        btnSkip =(Button) findViewById(R.id.btn_skip);
        btnSkip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startMainActivity();
            }
        });

        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int currentpage = viewPager.getCurrentItem() + 1;
                if (currentpage < layouts.length) {
                    viewPager.setCurrentItem(currentpage);
                } else {
                    startMainActivity();
                }
            }
        });
        layouts = new int[]{R.layout.slider_1, R.layout.slider_2, R.layout.slider_3};
        myPagerAdapter = new MyPagerAdapter(layouts, getApplicationContext());
        viewPager.setAdapter(myPagerAdapter);
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                if (position == layouts.length - 1) {
                    btnNext.setText("START");
                    btnSkip.setVisibility(View.GONE);
                } else {
                    btnNext.setText("NEXT");
                    btnSkip.setVisibility(View.VISIBLE);
                }

                setDotStatus(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        setDotStatus(0);
    }

    private boolean isFirstTimeStartApp() {
        SharedPreferences ref = getApplicationContext().getSharedPreferences("IndroSliderApp", Context.MODE_PRIVATE);
        return ref.getBoolean("Flag", true);
    }

    private void setFirstTimeStartStatus(boolean stt) {
        SharedPreferences ref = getApplicationContext().getSharedPreferences("IndroSliderApp", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = ref.edit();
        editor.putBoolean("FirstTimeStartFlag", stt);
        editor.commit();
    }

    private void setDotStatus(int page) {
        layoutDot.removeAllViews();
        dotstv = new TextView[layouts.length];
        for (int i = 0; i < dotstv.length; i++) {
            dotstv[i] = new TextView(this);
            dotstv[i].setText(Html.fromHtml("&#8226;"));
            dotstv[i].setTextSize(30);
            dotstv[i].setTextColor(Color.parseColor("#a9b4bb"));
            layoutDot.addView(dotstv[i]);
        }
        if (dotstv.length > 0) {
            dotstv[page].setTextColor(Color.parseColor("#ffffff"));
        }
    }

    private void startMainActivity() {
        setFirstTimeStartStatus(false);
        startActivity(new Intent(SplashScreen_Activity.this, MainActivity.class));
        finish();
    }

    private void setStatusbarTransparent() {
        if (Build.VERSION.SDK_INT >= 21) {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);
        }
    }
}

I did not get any kind of error but the welcome screen always shown on every time I open the app. 我没有收到任何错误,但每次打开应用程序时始终显示欢迎屏幕。 Thanks... 谢谢...

Try it , in your onCreate() method, add below code after your if condition 尝试一下 ,在您的onCreate()方法中,在if条件之后添加以下代码

    if (!isFirstTimeStartApp()) {
                startMainActivity();
                finish();
            }else{
            setFirstTimeStartStatus(false);
        }

In your setFirstTimeStartStatus() method,change the code to 在您的setFirstTimeStartStatus()方法中,将代码更改为

 private void setFirstTimeStartStatus(boolean stt) {
        SharedPreferences ref = getApplicationContext().getSharedPreferences("IndroSliderApp", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = ref.edit();
        editor.putBoolean("Flag", stt);
        editor.commit();
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM