我正在尝试为我的应用创建一个屏幕,允许用户创建用户名,然后启动应用程序。我已经有一个屏幕,其中包含我希望用户执行的所有操作,但我现在想要在进入活动屏幕之前添加用户必须使用的登录屏幕。我已经设计了登录屏幕,并准备好了一个单独的课程。 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中做一些事情?
答案 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)
将它添加到清单似乎可以解决问题。谢谢!