安卓实现用户登录——小白进阶2

安卓实现用户登录-
知识点1、对于文件的存储和读取操作
知识点2、如何引用另一个文件
注意事项:文件名一定一定要按我的那个路径来/data/data/com.example.lianxi/inf.text,data/data不能少

<?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=".MainActivity">

    <EditText
        android:id="@+id/name"
        android:layout_width="300dp"
        android:layout_height="50dp"
        />
    <EditText
        android:id="@+id/password"
        android:layout_width="300dp"
        android:layout_height="50dp"
        />
    <CheckBox
        android:id="@+id/isSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn"
        android:text="勾选保存信息"
        />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
    <Button
        android:id="@+id/finish"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:text="退出"
        />
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:text="确定"
        />

</LinearLayout>

</LinearLayout>
package com.example.lianxi;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

/*
* 保存用户名和密码
* */
public class Utils {
    
    
    public static boolean saveInfo(String username,String pwd) {
    
    
        String info = username+"##"+pwd;
        File file = new File("/data/data/com.example.lianxi/inf.text");
        try {
    
    
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(info.getBytes());
            fos.close();
            return true;
        } catch(Exception e) {
    
    
            e.printStackTrace();
            return false;
        }
    }
    //获取用户保存的用户名和密码
        public static String[] readInfo() {
    
    
            File file = new File("/data/data/com.example.lianxi/inf.text");
          try {
    
    
              FileInputStream fis = new FileInputStream(file);
              BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
              String temp = reader.readLine();
              String[] result = temp.split("##");
              return result;
          } catch(Exception e) {
    
    
              e.printStackTrace();
              return null;
          }

        }
}

package com.example.lianxi;

import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //实例化控件
        EditText et_name = findViewById(R.id.name);
        EditText et_pwd = findViewById(R.id.password);
        CheckBox cb_isSave = findViewById(R.id.isSave);
        Button btn_logo = this.findViewById(R.id.btn);
        Button fin = findViewById(R.id.finish);
        //点击监听事件
        //获取用户保存的信息
        String[] info = Utils.readInfo();
        if (info != null) {
    
    
            et_name.setText(info[0] + "大大");
            et_pwd.setText(info[1]);
        }
        btn_logo.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                //获取用户输入
                String username = et_name.getText().toString().trim();
                String pwd = et_pwd.getText().toString().trim();
                //判断用户名或者密码是否为空
                if (TextUtils.isEmpty(username) || TextUtils.isEmpty(pwd)) {
    
    
                    Toast.makeText(MainActivity.this,"空",Toast.LENGTH_LONG).show();
                }else {
    
    
                    //判断是否选中
                    boolean checked = cb_isSave.isChecked();
                    if (checked) {
    
    
                        //执行业务逻辑
                        boolean saveInfo = Utils.saveInfo(username,pwd);
                        if (saveInfo) {
    
    
                            Toast.makeText(MainActivity.this,"保存成功",Toast.LENGTH_LONG).show();
                        }else {
    
    
                            Toast.makeText(MainActivity.this,"保存失败",Toast.LENGTH_LONG).show();
                        }
                        //勾选了保存用户名和密码
                        Log.d("用户名"+username,"密码"+pwd);
                    }
                }
                Log.d("MainActivity","开始登陆....");
//                Intent intent = new Intent(MainActivity.this,MainActivity.class);
//                MainActivity.this.startActivity(intent);
            }
        });
        //退出按钮监听事件
        fin.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                finish();
            }
        });
   }
}

猜你喜欢

转载自blog.csdn.net/weixin_44584479/article/details/115129356