• android 57 QQ登录


    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"      里面的内容居中显示
        android:orientation="vertical"              垂直排列
        tools:context=".MainActivity" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/qq" />
    
        <EditText
            android:id="@+id/et_qqnumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入QQ号码" >
        </EditText>
    
        <EditText
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:inputType="textPassword" />
    
        <CheckBox
            android:id="@+id/cb_remember"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="记住用户名和密码" />
    
        <Button
            android:onClick="login"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="登陆" />
    
    </LinearLayout>
    package com.itheima.qqlogin;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
        private EditText et_qqnumber;
        private EditText et_password;
        private CheckBox cb_remember;
        
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);//先加载界面在获取id
            //寻找这些控件
            et_qqnumber = (EditText) findViewById(R.id.et_qqnumber);
            et_password = (EditText) findViewById(R.id.et_password);
            cb_remember = (CheckBox) findViewById(R.id.cb_remember);
            restoreInfo();
        }
    
        /**
         * 登陆按钮的点击事件
         * @param view
         */
        public void login(View view){
            String qq = et_qqnumber.getText().toString().trim();
            String password = et_password.getText().toString().trim();
            if(TextUtils.isEmpty(qq)||TextUtils.isEmpty(password)){
                Toast.makeText(this, "用户名和密码不能为空", 0).show();
                return;
            }else{
                //判断是否需要记录用户名和密码
                if(cb_remember.isChecked()){//被选中状态,需要记录用户名和密码
                    try {
                        File file = new File(this.getFilesDir(),"info.txt");//安卓运行在手机里面,所以文件在手机里面,
                        //每安装一个应用程序就会在手机的data/data/应用程序包名:下面创建一个应用程序的文件夹(文件夹的名字是应用程序的名字),这个文件夹是可以向里面读写数据的,
                        FileOutputStream fos = new FileOutputStream(file);
                        //10000##123456
                        String info = qq +"##"+password;
                        fos.write(info.getBytes());
                        fos.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                //登陆操作的. 模拟登陆,数据应该提交给服务器 由服务器比较是否正确
                if("10000".equals(qq)&&"123456".equals(password)){
                    Toast.makeText(this, "登陆成功", 0).show();
                }else{
                    Toast.makeText(this, "登陆失败", 0).show();
                }
            }
        }
        
        /**
         * 根据原来保存的文件信息,把qq号码和密码信息回显到界面
         * getFilesDir()//获取应用程序files目录  /data/data/包名/files/   文件夹
         */
        public  void restoreInfo(){
            File file = new File(this.getFilesDir(),"info.txt");
            if(file.exists()&&file.length()>0){
                try {
                    FileInputStream fis = new FileInputStream(file);
                    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                    //10000##123456
                    String info = br.readLine();//读一行最好用BufferedReader包装一下
                    String qq = info.split("##")[0];
                    String pwd = info.split("##")[1];
                    et_qqnumber.setText(qq);
                    et_password.setText(pwd);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
    }
  • 相关阅读:
    简单计算器(栈和队列的应用)
    01背包问题(dfs+剪枝)
    PAT1057 stack(分块思想)
    算法笔记求序列A每个元素左边比它小的数的个数(树状数组和离散化)
    求序列A中每个数的左边比它小的数的个数(树状数组)
    ubuntu-创建python虚拟环境
    vue-打包
    django-项目目录结构
    接口自动化-常见工具
    selenium-封装一个browser
  • 原文地址:https://www.cnblogs.com/yaowen/p/4909735.html
Copyright © 2020-2023  润新知