Android--模拟登陆用户名密码,使用File或openFileOutput保存文件
来源:互联网 发布:二手工作站笔记本 知乎 编辑:程序博客网 时间:2024/06/08 15:51
一、File:xml布局文件
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="请输入用户名" /> <EditText android:id="@+id/et_username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:ems="10"/> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/et_username" android:layout_below="@+id/et_username" android:layout_marginTop="20dp" android:text="请输入用户密码" /> <EditText android:id="@+id/ed_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView2" android:layout_below="@+id/textView2" android:ems="10" android:inputType="textPassword" > <requestFocus /> </EditText> <CheckBox android:id="@+id/checkbox_remeber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignTop="@+id/btn_login" android:text="记住我" /> <Button android:id="@+id/btn_login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/et_username" android:layout_below="@+id/ed_password" android:layout_marginTop="27dp" android:gravity="left" android:onClick="login" android:text="登陆" /></RelativeLayout>效果图:
二、
File: MainActivity.java
package com.jiangge.login;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;import com.jiangge.login.service.LoginService;import com.jiangge.logindemo.R;public class MainActivity extends Activity {private static final String TAG = "MainActivity";private EditText mUsername;private EditText mPassword;private CheckBox mRemember;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mUsername = (EditText) findViewById(R.id.et_username);mPassword = (EditText) findViewById(R.id.ed_password);mRemember = (CheckBox) findViewById(R.id.checkbox_remeber);Map<String, String> map = LoginService.getSavedUserInfo(this);if (map != null) {mUsername.setText(map.get("username"));mPassword.setText(map.get("password"));}}public void login(View view) {String username = mUsername.getText().toString().trim();String password = mPassword.getText().toString().trim();if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {Toast.makeText(this, "用户名和密码不能为空", Toast.LENGTH_LONG).show();}if (mRemember.isChecked()) {//保存用户名和密码Log.i(TAG, "保存用户名和密码");boolean result = LoginService.saveUserInfo(this, username, password);if (result) {Toast.makeText(this, "保存用户名和密码成功", Toast.LENGTH_LONG).show();}}//登录发送到服务器,服务器验证是否正确。模拟。if ("jiangge".equals(username) && "123".equals(password)) {Toast.makeText(this, "登录成功", Toast.LENGTH_LONG).show();}}}
File: LoginService.java
package com.jiangge.login.service;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 java.util.HashMap;import java.util.Map;import android.content.Context;public class LoginService {//存数据public static boolean saveUserInfo(Context context, String username, String password){try {File file = new File(context.getFilesDir(), "info.txt"); //Do not hardcode "/data/"; use Context.getFilesDir().getPath() insteadSystem.out.println("====>>>"+ context.getFilesDir());// /data/data/com.jiangge.logindemo/filesFileOutputStream fos = new FileOutputStream(file);fos.write((username + "##" + password).getBytes());fos.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}//取数据public static Map<String,String> getSavedUserInfo(Context context){try {File file = new File(context.getFilesDir(), "info.txt");FileInputStream fis = new FileInputStream(file);BufferedReader br = new BufferedReader(new InputStreamReader(fis));String str = br.readLine();br.close();String [] infos = str.split("##"); //jiangge##123Map<String,String> map = new HashMap<String, String>();map.put("username", infos[0]);map.put("password", infos[1]);return map;} catch (Exception e) {e.printStackTrace();return null;}}}
注:
保存文件:
File file = new File(context.getFilesDir(), "info.txt"); //Do not hardcode "/data/"; use Context.getFilesDir().getPath() insteadSystem.out.println("====>>>"+ context.getFilesDir());// /data/data/com.jiangge.logindemo/filesFileOutputStream fos = new FileOutputStream(file);fos.write((username + "##" + password).getBytes());fos.close();
也可以将以上的核心代码,使用Activity提供的方法 openFileOutput(String name, int mode)
FileOutputStream fos = context.openFileOutput("private.txt", Context.MODE_PRIVATE);fos.write((username + "##" + password).getBytes());fos.close();
保存到了 /data/data/包名/files/目录下
- Android--模拟登陆用户名密码,使用File或openFileOutput保存文件
- 保存登陆用户名和密码
- Android保存用户名和密码
- Android保存用户名和密码
- Android保存用户名和密码
- Android保存用户名和密码
- Android保存用户名和密码
- Android保存用户名和密码
- Android保存用户名和密码
- Android——用户登陆及用户名和密码的保存
- 保存文件到手机内存与使用密码登陆
- Android模拟QQ登陆保存账号密码,初始化读取账号密码
- Android学习(19) -- 数据存储之File (简单登录保存用户名和密码)
- android--登录例子,保存用户名和密码到这个应用所在文件中,从文件中读取用户名和密码
- PL/SQL Developer 登陆分组管理 以及 保存用户名密码
- android保存用户名与密码方法①
- Android sharedpreference保存用户名和密码
- android开发时保存用户名和密码
- Android-----WebView使用
- 大学生应该了解的网络安全知识
- Working Practice-开发人员数目与绩效的关系
- 实现学生信息录入的动态长度控制
- 简要说明python的一些基本知识
- Android--模拟登陆用户名密码,使用File或openFileOutput保存文件
- 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)...
- cocos2dx中的cocosDenshion对不同平台音频支持格式
- Android中如何显示本地HTML
- Linux防火墙的配置
- 如何让自己桌面文件默认路径在其它盘呢?
- 编写设计一个People(人)类。该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatt
- coco2d-x版的植物大战僵尸
- uva11029 - Leading and Trailing n^k保留前三位