登录页面(保存账号密码)点击登录跳转主页面

例:


1) 完成登录页面效果

2) 输入用户名(手机号)和密码,并做合法性校验,当手机号格式不正确时,提示“请输入合法的手机号”

3) 完成记住密码和自动登录的选中状态切换

4) 当选择自动登录时,自动选中记住密码,当取消选中记住密码时,自动取消选中自动登录

5) 当只选中记住密码时,下次进入应用时进入登录页(图一)并且自动填充用户名和密码。当选中自动登录时,下次进入应用进入首页(图二)

6) 点击登录按钮,调用登录接口完成登录请求(下附登录接口),仅当用户名为13800138000且密码为123456时,登录成功,其他情况分别提示服务器返回的消息

7) 使用MVP框架搭建,分包明确,解决内存泄漏,并封装网络请求工具类

8) 登录成功后跳转到主页面并将用户名("name”字段)传递到主页面(图二)



MainActivity主页面

public class MainActivity extends AppCompatActivity {
    private Button btn;//登录按钮
    private CheckBox checkBox;//是否保存密码的选择框
    private EditText edit_name, edit_psd;//用户名和密码的文本输入框

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
    /**
     * 初始化数据
     */
    private void initView() {
        btn = (Button) findViewById(R.id.btn_login);
        checkBox = (CheckBox) findViewById(R.id.istrue);
        edit_name = (EditText) findViewById(R.id.name);
        edit_psd = (EditText) findViewById(R.id.password);
        output();//刚进入就先取一次,看看当然状态
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//随便设置初始帐号和密码分别为    "abc"    "123456"
                if (edit_name.getText().toString().equals("13800138000") && edit_psd.getText().toString().equals("123456")) {
                    input();//登录成功就把数据存起来
                    Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
                    startActivity(intent);
                    finish();
                } else {
                    Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
    /**
     *      */
    private void output() {
//第一个参数是文件名,第二个参数是模式(不明白可以去补习一下SharedPreferences的知识)
        SharedPreferences shared = getSharedPreferences("mypsd", MODE_PRIVATE);
        //第一个参数就是关键字,第二个参数为默认值,意思是说如果没找到值就用默认值代替
        String name1 = shared.getString("name", "");//同上,若没找到就让它为空""
        String psd1 = shared.getString("psd", "");
        boolean ischecked1 = shared.getBoolean("isChecked", false);
        edit_name.setText(name1);
        edit_psd.setText(psd1);
        checkBox.setChecked(ischecked1);
    }
    /**
     * 存到SD卡,判断选中获取缓存账号密码
     */
    private void input() {
//第一个参数是文件名,第二个参数是模式(不明白可以去补习一下SharedPreferences的知识)
        SharedPreferences.Editor edit = getSharedPreferences("mypsd", MODE_PRIVATE).edit();
        //判断选择框的状态   被选中isChecked……
        if (checkBox.isChecked()) {
            edit.putString("name", edit_name.getText().toString());
            edit.putString("psd", edit_psd.getText().toString());
            edit.putBoolean("isChecked", true);
        } else {
//            edit.clear();              //若选择全部清除就保留这行代码,注释以下三行
            edit.putString("name", edit_name.getText().toString());//只存用户名
            edit.putString("psd", "");
            edit.putBoolean("isChecked", false);
        }
        edit.commit();
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".View.MainActivity">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/name"
        android:hint="请输入手机号" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/password"
        android:hint="请输入密码" />
    <CheckBox
        android:id="@+id/istrue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="记住密码" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="登录"
        android:layout_gravity="center_horizontal"
        android:id="@+id/btn_login" />
    <TextView
        android:id="@+id/login_zhuce"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="新用户注册" />
</LinearLayout>








  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在LabVIEW中,可以通过在Block Diagram中添加代码实现登录后自动跳转页面的功能。以下是具体步骤: 1. 在Front Panel中添加一个登录界面,包括账号和密码输入框、登录按钮等控件。 2. 在Block Diagram中添加代码,检查账号和密码是否正确。如果正确,则在代码中设置一个标记(例如,login_success = True),表示登录成功。 3. 在Front Panel中添加页面,并在其上设置Visible属性为False,表示登陆成功后页面不可见。 4. 在Block Diagram中,在上一步中设置的标记下,添加代码,将页面的Visible属性设置为True。这样,当用户登录成功后,页面会自动跳转并显示出来。 5. 在代码中,还需要添加一些异常处理的代码,例如账号或密码输入错误时,弹出提示框提示用户重新输入等。 以上就是实现LabVIEW登录后自动跳转页面的方法。需要注意的是,具体实现方式可能因应用场景有所不同,可以根据具体情况自行调整代码。 ### 回答2: 要实现这个功能,需要在LabVIEW中进行设置。具体步骤如下: 1. 在LabVIEW中创建一个登陆界面,包括用户名和密码的输入框,以及登陆按钮。 2. 创建一个页面,包括菜单栏、工具栏和需要展示的控件。 3. 在登陆按钮的回调函数中,添加如下代码: 如果用户名和密码验证通过,则将页面设置为当前活动页面,并显示它。可以使用“Show Front Panel”来实现。 如果用户名和密码不正确,则提示用户重新输入。 4. 在页面的关闭事件中,添加如下代码: 当页面被关闭时,将登陆页面设置为当前活动页面,并显示它。 这样,在用户登陆成功后,就会自动跳转页面。如果用户在页面关闭程序,就会回到登陆页面。 需要注意的是,为了安全起见,应该将用户名和密码存储在安全的地方,例如,使用加密算法将它们存储在文件中。另外,还应该为每个用户分配不同的权限,限制他们能够访问的功能和数据。 ### 回答3: 要让LabVIEW登录后自动跳转页面,需要进行以下步骤: 1. 在LabVIEW中创建一个登录界面和一个页面。 2. 在登录界面的“登录”按钮上添加一个事件响应函数,使其在点击后进行用户身份验证。 3. 在身份验证通过后,将从登录界面跳转页面。 4. 在程序启动时,设置页面为程序的初始界面。 具体实现方法如下: 1. 创建登录界面和页面 首先,创建一个登录界面,包括用户名和密码的输入框和“登录”按钮。然后,创建一个页面,包括程序需要使用的所有功能区域。 2. 添加事件响应函数 在登录界面上,“登录”按钮的单击事件添加事件处理程序。该事件处理程序将检查输入的用户名和密码是否与保存的用户信息匹配。如果是,则从登录界面跳转页面,否则弹出错误提示框。 3. 设置初始页面 为了让程序在启动时直接跳转页面,需要设置页面为程序的初始页面。在LabVIEW的项目面板中,右键单击页面,选择“Set as Startup VI”。 4. 完成自动跳转逻辑 最后,将登录界面和页面连接起来,在验证用户身份后,使用LabVIEW的“Invoke Node”功能板将控制权转移到页面。这样,当用户输入正确的用户名和密码后,程序将自动跳转页面。 总之,实现让LabVIEW登录之后自动跳转页面需要设计良好的程序逻辑和GUI界面,以及使用事件处理程序和控制节点使得程序流程更加方便快捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值