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();
            }
        }
    }
    
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4909735.html,如需转载请自行联系原作者


相关文章
|
6月前
|
数据安全/隐私保护 Android开发
2023安卓逆向 -- 某合伙apk登录加密分析
2023安卓逆向 -- 某合伙apk登录加密分析
70 0
|
JavaScript Java Android开发
Cocos Creator Android 平台 Facebook 原生登录(二)
Cocos Creator Android 平台 Facebook 原生登录
208 0
|
开发工具 Android开发 数据安全/隐私保护
Cocos Creator Android 平台 Facebook 原生登录(一)
Cocos Creator Android 平台 Facebook 原生登录
507 0
|
API 开发工具 Android开发
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
286 0
|
28天前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
109 0
安卓项目:app注册/登录界面设计
|
12天前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
15 1
|
3月前
|
开发工具 Android开发
|
3月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
很多文章都介绍了FTPClient如何连接ftp服务器,但却很少有人说如何连接一台开了SSL认证的ftp服务器,现在代码来了。
95 2
|
5月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
206 2
|
5月前
|
XML Android开发 数据格式
【Android UI】使用RelativeLayout与TableLayout实现登录界面
【Android UI】使用RelativeLayout与TableLayout实现登录界面
52 5