<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();
}
}
} }

android 57 QQ登录的更多相关文章

  1. Android 调用QQ登录

    调用QQ登录        在如今的项目开发.调用第三方登录.差点儿是必须的,而调用QQ登录也是不可缺少的,这里把相关代码分享出来,希望能拿去就能够用,降低项目开发的时间.希望对大家实用. 1,去QQ ...

  2. Android仿QQ登录下拉历史列表

    demo中包含了Sqlite数据库增删改查,对存储的账号进行按照最新的时间排序,限制了最多存储5条数据. 效果图: 1.首先创建MyHelper建表: public class MyHelper ex ...

  3. Android之QQ登录界面

    首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得 ...

  4. Android实现QQ登录

    https://www.jianshu.com/p/e59bc198e88f

  5. Android(java)学习笔记212:中文乱码的问题处理(qq登录案例)

    1.我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed&q ...

  6. Android 实现QQ第三方登录

    Android 实现QQ第三方登录 在项目中需要实现QQ第三方登录,经过一番努力算是写出来了,现在总结以下,以防以后遗忘,能帮到其他童鞋就更好了. 首先肯定是去下载SDK和DEMO http://wi ...

  7. [转]Android:布局实例之模仿QQ登录界面

    Android:布局实例之模仿QQ登录界面 预览图: 准备: 1.找到模仿对象 QQ登陆界面UI下载>>>>> 2.导入工程 3.查看布局结构和使用控件 其对应效果图分布 ...

  8. Android(java)学习笔记155:中文乱码的问题处理(qq登录案例)

    1. 我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed& ...

  9. android实现第三方登录之QQ登录

    首先,当然是在腾讯开放平台(http://open.qq.com/)注册成为开发者,然后获取APP ID 1.下载SDK http://wiki.open.qq.com/wiki/mobile/SDK ...

随机推荐

  1. Sharepoint 问题集锦 - 外部列表(external list) - 读取当前用户上下文或用户名作为筛选参数

    在创建外部列表过程中,往往需要添加筛选参数,而较多开发用户,会关心如何在外部列表中,只显示当前用户相关的行.本例子中,我们以任务数据表来做例子,看看如何实现这个需求. 1)数据表tbl_task: t ...

  2. resolvconf: Error: /etc/resolv.conf isn't a symlink, not doing anything.

    一.问题出现的原因 resolv.conf默认是个软链接,resolvconf默认会检查resolv.conf不是软链接就报错 默认的情况是这样的: #ls -l /etc/resolv.conflr ...

  3. Book of Evil

    Codeforces Round #196 (Div. 2) D:http://codeforces.com/contest/337/status/D 题意:给你一个树,然后树中有一m个点,求到这m个 ...

  4. MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK

    原文地址:http://it.dataguru.cn/article-3352-1.html 摘要: 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来 ...

  5. QVariant类学习(非常强大的类型,甚至能处理QMap<QString ,QVariant>)

    详细描述: QVariant类作为一个最为普遍的Qt数据类型的联合. 因为c++禁止没有构造函数和析构函数的联合体,许多继承的Qt类不能够在联合体当中使用.(联合体当中的变量共用一个存储区),没有了联 ...

  6. 第1章 开发环境安装和配置(二)安装JDK、SDK、NDK

    原文 第1章 开发环境安装和配置(二)安装JDK.SDK.NDK 无论是用C#和VS2015开发Androd App还是用Java和Eclipse开发Androd App,都需要先安装JDK和Andr ...

  7. python2.7中使用mysql (windows XP)

    一.首先下载mysql—python模块,下载完毕之后会有一个MySQL-python-1.2.3.win32-py2.7.exe文件,点击安装一路next,ok. 二.编辑配置文件(setting. ...

  8. IP分片和TCP分片 MTU和MSS(转)

    IP分片和TCP分片 MTU和MSS(转) 访问原文:http://blog.csdn.net/keyouan2008/article/details/5843388 1,MTU(Maximum Tr ...

  9. 教程:在 VM Depot 中查找 Azure 可用的虚拟机镜像

     发布于 2014-07-08 作者 陈 忠岳 对于 Azure 的社区管理虚拟机资源库--VM Depot--的用户来说,网站的搜索功能已得到极大的改善.这一搜索能力的增强,可以帮助用户更容易地 ...

  10. 单独启动tomcat

    原料: jdk-1_5_0_13-windows-i586-p.exe apache-tomcat-5.5.25.zip 安装jdk,路径为:C:\Program Files\Java\jdk1.5. ...