为App创建用户名并启动

时间:2017-03-09 19:31:28

标签: java android

我正在尝试为我的应用创建一个屏幕,允许用户创建用户名,然后启动应用程序。我已经有一个屏幕,其中包含我希望用户执行的所有操作,但我现在想要在进入活动屏幕之前添加用户必须使用的登录屏幕。我已经设计了登录屏幕,并准备好了一个单独的课程。 Doe的任何人都知道如何去做,以便MainActivity首先加载登录?我假设我需要设置某种布尔标志,允许Main加载应用程序的其余部分?

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    setContentView(R.layout.activity_main);

    Size = (SeekBar)findViewById(R.id.size);
     Speed =(SeekBar)findViewById(R.id.speed);
     Agility=(SeekBar)findViewById(R.id.agility);
     Vision =(SeekBar)findViewById(R.id.vision);


    text = (TextView) findViewById(R.id.text);
    Size.setOnSeekBarChangeListener(this);
    Speed.setOnSeekBarChangeListener(this);
    Agility.setOnSeekBarChangeListener(this);
    Vision.setOnSeekBarChangeListener(this);

}

我的登录设置了内容视图。

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/login"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

    <Button
        android:text="Begin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/begin"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="124dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="Name"
        android:ems="10"
        android:layout_above="@+id/begin"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="88dp"
        android:layout_marginEnd="88dp"
        android:layout_marginBottom="149dp"
        android:id="@+id/editText2" />

</RelativeLayout>

我有我的布局。我也有班级,现在是空的。

我是否必须在AndroidManifest中做一些事情?

3 个答案:

答案 0 :(得分:0)

目前,您的MainActivity是MAIN LAUNCHER活动。将其更改为LogInACtivity,然后您的LogInActivity将首先启动。在您的清单中,从MainActivity的活动代码中删除以下代码,并将其粘贴到新创建的LogInActivity活动代码中;

<intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

希望这有帮助。

答案 1 :(得分:0)

您可以尝试根据布尔值activity for a result启动活动或SharedPreference(用户名)。因此,像正常一样启动MainActivity,并在onCreate()中,检查用户是否已使用其用户名登录。如果没有,请显示登录屏幕。用户登录时,更改SharedPreference值。

代码

// In onCreate()...
SharedPreferences prefs = PreferenceManager
    .getDefaultSharedPreferences(StartActivity.this);

if (!prefs.getBoolean("LoggedIn", false)) {
    // Launch login activity
} else {
    // Do something else
}

// In your Login Activity, preferably after the user has provided a valid username...

SharedPreferences prefs = PreferenceManager
    .getDefaultSharedPreferences(StartActivity.this);
SharedPreferences.Editor editor = prefs.edit();

// Set LoggedIn to true
editor.putBoolean("LoggedIn", true);
editor.putString("username", <The username they chose>);

希望这有帮助!就整个布尔值而言,你是在正确的轨道上,但只是检查一个本地声明的变量不会削减它。您需要在系统中实际存储数据以便稍后检查,例如在连续启动期间。

答案 2 :(得分:0)

将它添加到清单似乎可以解决问题。谢谢!