Android应用第一次启动时的欢迎界面制作

原理是这样,我们在SharedPreferences中存储一个int型数据,用来代表第几次登录,每次启动时都读取出来判断是不是第一次启动,然后依次判断是否要显示欢迎界面,

具体实现如下:

设置一个欢迎界面的Activity,并设置为主Activity,在判断第几次启动后来决定要不要跳转到MainActivity

package com.example.f;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class StartActivity extends AppCompatActivity {
private Button go=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);

        go=(Button)findViewById(R.id.go);
        SharedPreferences userInfo = getSharedPreferences("start", MODE_PRIVATE);
        SharedPreferences.Editor editor = userInfo.edit();
        Int x;//获取记录启动次数的值,若获取不到就默认为1
        x=userInfo.getInt("start",1);
//判断第几次启动
        if(x==1)
        {//为启动数加一
            x++;
            editor.putInt("start",x);
            editor.commit();

        }
        else {
//若不是第一次登录就直接跳转MainActivity
            x++;
            editor.putInt("start",x);
            editor.commit();
            Intent it=new Intent();
            it.setClass(StartActivity.this,MainActivity.class);
            startActivity(it);
            StartActivity.this.finish();
        }
//欢迎界面进入应用的按钮
        go.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent it=new Intent();
                it.setClass(StartActivity.this,MainActivity.class);
                startActivity(it);
                StartActivity.this.finish();

            }
        });
    }
}

  布局文件只有一个按钮

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".StartActivity">

    <Button
        android:id="@+id/go"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

  初次启动效果如下

原文地址:https://www.cnblogs.com/liuleliu/p/12332866.html

时间: 2024-10-13 04:47:47

Android应用第一次启动时的欢迎界面制作的相关文章

android实现应用程序只有在第一次启动时显示引导界面

概述 SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据.SharedPreferences只能保存简单类型的数据,例如,String.int等.一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存. 使用SharedPreferences保存key-value对的步骤如下: (1)使用Activity类的getSharedPreferences方法获得SharedPrefere

Android App 第一次打开时的引导界面

Android App 第一次打开时的引导界面,这个需求是非常多的.在写新项目的时候,刚好要用到,在网上找了一下 demo,没发现非满意的.所以只好自己动手写一个,分享一下,避免以后大家重复造轮子.效果图如下(虽然有点丑) 上面这个就是引导界面 GuideActivity 的界面了,实现思路很简单:主界面用 FrameLayout 布局,后面用 ViewPager 装载图片.下面几个小点指示当前滑动到哪个界面了,因为没现在的控制可用,所以自定义了一个 InidcatorView,布局文件如下 <

android应用程序第一次启动时显示引导界面

市面上好多优秀的应用(举例新浪微博.UC浏览器)都采用了欢迎页面与使用向导的方式给用户带来了良好的用户体验. 一般来说用户第一次安装应用或者安装了新版本后第一次进入应用都会显示成 欢迎页面-使用向导-主界面 的方式 用户没有安装新版本或者不是第一次进入的时候都会显示成 欢迎页面-主界面的方式 想要实现这种不同的分支,我们就要使用一种变量来存储我们是否是第一次进入应用,当然这种变量不可能是存储在应用里,而是要存储在应用包名底下的文件中 那么我们就来看看实现这种变量存储和修改的步骤吧 1.在应用的欢

Launcher3学习记录-Launcher第一次启动时的快捷方式、Widget加载流程

Launcher3的主Activity是Launcher.java,在onCreate()方法中可以找到数据下载的入口.mModel 是类LauncherModel的引用. 1 if (!mModel.startLoader(mWorkspace.getRestorePage())) { 2 // If we are not binding synchronously, show a fade in animation when 3 // the first page bind complete

Android应用程序启动时发生AndroidRuntime : ClassNotFoundException for Activity class的解决方法

在android应用程序启动时抛出下面异常导致启动失败:07-09 17:12:35.709: ERROR/AndroidRuntime(3866): Uncaught handler: thread main exiting due to uncaught exception 07-09 17:12:35.719: ERROR/AndroidRuntime(3866): java.lang.RuntimeException: Unable to instantiate activity Com

安装完android studio,启动时碰到&quot;failed to load jvm dll&quot;的解决方案

安装完android studio,启动时碰到"failed to load jvm dll"的解决方案 安装Microsoft Visual C++ 2010 Redistributable Package 32 bit: http://www.microsoft.com/download/en/details.aspx?id=5555 64 bit: http://www.microsoft.com/download/en/details.aspx?id=14632 然后再运行An

【Android端 APP 启动时长获取】启动时长获取方案及具体实施

一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分配一个新的进程给应用. (2)热启动:程序的进程依然存在,启动时通过已有进程启动进入到Activity显示页面的,就是热启动,或者从Android官网来看我们获取到的其实是温启动时长,就是Activity不存在的情况. (3)新装包的启动时长: 新装包的启动时长,预估是最长的,并且在5.0以下及5.

Android Studio第一次启动的Fetching android sdk component information的问题

1)进入刚安装的Android Studio文件夹下的bin文件夹.找到idea.properties文件,用文本编辑器打开. 2)在idea.properties文件末尾加入一行: disable.android.first.run=true ,然后保存文件. 3)关闭Android Studio后又一次启动.便可进入界面. 能够解决.

centos5.5启动时改图形界面为命令行模式

昨天在做VMware虚拟化P2V时,由于被转物理机必须要和ESXI主机在同一网段(两个可以互访的不同网段能不能转我不知道,至少到目前为止我没有转成功过,只有改在同一网段才行),而现有环境是被转主机在50段,而esxi主机在10段,所以我就改了被转物理机的ip(被转物理机:centos5.5,数据库测试环境) 进系统,敲命令 [[email protected]~]vi /etc/sysconfig/network-scripts/ifcfg-eth0 [[email protected]~]/e