LoginActivity实现

参考:《第一行代码》

1.首先new一个LoginActivity继承Activity

1 public class LoginActivity extends Activity

2.重写OnCreate方法

1     @Override
2     protected void onCreate(Bundle savedInstanceState) {
3         super.onCreate(savedInstanceState);
4     }

3.使登录界面全屏并隐藏标题栏,这行代码一定要在setContentView()之前执行

 

1 requestWindowFeature(Window.FEATURE_NO_TITLE);

4.用setContentView加载布局

1     @Override
2     protected void onCreate(Bundle savedInstanceState) {
3         super.onCreate(savedInstanceState);
4         this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
5         this.requestWindowFeature(Window.FEATURE_NO_TITLE);
6         setContentView(R.layout.activity_login);
7 }

5.在活动中使用Toast返回一些短小的消息给用户,比如登录失败。Toast方法非常简单,通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以了。makeText()方法需要三个参数,第一个参数是Context,也就是Toast要求的上下文,这里写上getApplicationContext(),由于活动本身就是一个Context对象,因此也可以在这里直接传入LoginActivit.this。第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG。

1 Toast.makeText(getApplicationContext(), "用户名或者密码错误", Toast.LENGTH_SHORT).show();

 6.可以通过findViewById()方法获取到在布局文件中定义的元素,这里我们传入R.id.***,代码如下:

1  private Button login_btn;
2  login_btn = (Button) findViewById(R.id.login_btn);

7.我们可以通过调用setOnClickListener方法为按钮注册一个监听器,点击按钮就会执行监听器中的方法。

1  login_btn.setOnClickListener(new View.OnClickListener() {
2             @Override
3             public void onClick(View v) {
4             }
5         });

8.使用Intent在各活动之间穿梭,Intent方法大致分为两种显式Intent和隐式Intent。我们先看看显式Intent,Intent的构造函数Intent(Context packageContext, Class<?> cls),第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标活动。

1  Intent intent = new Intent(LoginActivity.this, NaviActivity.class);
2  startActivity(intent);

隐式Intent则不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent并帮我们找出合适的活动去启动。我们在AndroidManifest.xml文件的<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category。

1         <activity
2             android:name=".NaviActivity"
3             android:label="@string/app_name" >
4             <intent-filter>
5                 <action android:name="com.example.activitynavi.ACTION_START" />
6                 <category android:name="android.intent.category.DEFAULT" />
7             </intent-filter>
8         </activity>

在这里我们还可以看到主活动的<activity>标签

1         <activity
2             android:name=".LoginActivity"
3             android:label="@string/app_name" >
4             <intent-filter>
5                 <action android:name="android.intent.action.MAIN" />
6 
7                 <category android:name="android.intent.category.LAUNCHER" />
8             </intent-filter>
9         </activity>

隐式的方式下我们启动一个activity需要Intent的另一个构造函数

1 Intent intent = new Intent(“com.example.wanderingzj.stumanage.ACTION_START”);
2 startActivity(intent);

只有在<action>和<category>标签同时匹配Intent中指定的action和category时,这个活动才能启动,由于这里设置的是android.intent.category.DEFAULT是一种默认category所以在调用startActivity()时,会自动将这个category添加到Intent中。

每个Intent中只能指定一个action,但可以指定多个category,所以还可以这样写:

1         <activity
2             android:name=".NaviActivity"
3             android:label="@string/app_name" >
4             <intent-filter>
5                 <action android:name="com.example.wanderingzj.stumanage.ACTION_START" />
6                 <category android:name="android.intent.category.DEFAULT" />
7                 <category android:name="com.example.wanderingzj.stumanage.MY_CATEGORY"/>
8             </intent-filter>
9         </activity
1 Intent intent = new Intent("com.example.wanderingzj.stumanage.ACTION_START");
2 intent.addCategory("com.example.wanderingzj.stumanage.MY_CATEGORY")
3 startActivity(intent);

在打开NaviActivity的同时,我们需要把LoginActivity里选择的权限传过去,这里我们就需要用Intent传递参数,我们可以使用Intent的putExtra方法,putExtra()方法第一个参数是键,第二个参数是真正要传递的数

1                     Intent intent = new Intent("com.example.wanderingzj.stumanage.ACTION_START");
2                     int authorization;
3                     if ( stu_rb.isChecked()) {
4                         authorization = 0;
5                     }else{
6                         authorization = 1;
7                     }
8                     intent.putExtra("Authorization", authorization);
9                     startActivity(intent);

NaviActivity中,我们需要把值取出来,首先可以通过getIntent()方法获取用于启动NaviActivity的Intent,然后调用getStringExtra()方法,传入相应的键值,就可以得到传递的数值了。

1 Intent oldpager = getIntent();
2 int num = oldpager.getIntExtra("Authorization", 0);

到这里初步的LoginActivity就完成了,后续还会增加很多东西,比如数据库连接等。Android要学的东西还有很多啊~~

目前的LoginActivity代码:

 1 package com.example.wanderingzj.stumanage;
 2 
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.graphics.Color;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.view.Window;
 9 import android.view.WindowManager;
10 import android.widget.Button;
11 import android.widget.EditText;
12 import android.widget.RadioButton;
13 import android.widget.Toast;
14 
15 /**
16  * Created by samsung on 2015/10/28.
17  */
18 public class LoginActivity extends Activity{
19     //定义控件名
20     private EditText pwd_edt;
21     private EditText username_edt;
22     private RadioButton stu_rb;
23     private RadioButton teacher_rb;
24     private Button login_btn;
25 
26     //定义一个新的Intent活动,以跳转到新界面
27     private Intent newpager;
28 
29     @Override
30     protected void onCreate(Bundle savedInstanceState) {
31         super.onCreate(savedInstanceState);
32         requestWindowFeature(Window.FEATURE_NO_TITLE);
33         setContentView(R.layout.activity_login);
34 
35         pwd_edt = (EditText) findViewById(R.id.pwd_edt);
36         username_edt = (EditText) findViewById(R.id.username_edt);
37         stu_rb = (RadioButton) findViewById(R.id.stu_rB);
38         teacher_rb = (RadioButton) findViewById(R.id.teacher_rB);
39         login_btn = (Button) findViewById(R.id.login_btn);
40 
41         //设置控件的背景色
42         pwd_edt.setBackgroundColor(Color.WHITE);
43         username_edt.setBackgroundColor(Color.WHITE);
44 
45         //按钮监听器
46         login_btn.setOnClickListener(new View.OnClickListener() {
47             @Override
48             public void onClick(View v) {
49                 if (pwd_edt.getText().toString().equals("0") && username_edt.getText().toString().equals("0")){
50                     //登录成功后跳转到新界面
51                     newpager = new Intent("com.example.wanderingzj.stumanage.ACTION_START");
52                     int authorization;
53                     if ( stu_rb.isChecked()) {
54                         authorization = 0;
55                     }else{
56                         authorization = 1;
57                     }
58                     newpager.putExtra("Authorization", authorization);
59                     startActivity(newpager);
60                 }else {
61                     Toast.makeText(getApplicationContext(), "用户名或者密码错误", Toast.LENGTH_SHORT).show();
62                 }
63             }
64         });
65     }
66 }

 

 

 

  

 

转载于:https://www.cnblogs.com/wanderingzj/p/4928460.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现app的登录功能,一般需要以下几个步骤: 1. 创建登录界面:在app中设计一个界面,让用户输入用户名和密码。 2. 获取用户输入信息:在Java代码中获取用户输入的用户名和密码。 3. 进行验证:将用户输入的信息与数据库中的数据进行比对,如果用户名和密码正确,则登录成功;否则登录失败。 4. 跳转页面:如果登录成功,跳转到主界面;如果登录失败,给出提示信息,让用户重新输入。 下面是一个简单的Java代码示例: ``` public class LoginActivity extends AppCompatActivity { private EditText usernameEditText; private EditText passwordEditText; private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); usernameEditText = findViewById(R.id.username_edittext); passwordEditText = findViewById(R.id.password_edittext); loginButton = findViewById(R.id.login_button); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String username = usernameEditText.getText().toString(); String password = passwordEditText.getText().toString(); // TODO: 进行验证,判断用户名和密码是否正确 if (username.equals("admin") && password.equals("123456")) { // 登录成功,跳转到主界面 Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); finish(); } else { // 登录失败,给出提示信息 Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); } } }); } } ``` 注意:以上只是一个简单的示例,实际应用中还需要考虑安全性、记住密码、自动登录等功能的实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值