本文实例讲述了Android开发之完成登陆界面的数据保存回显操作。分享给大家供大家参考,具体如下:
LoginActivity.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
package com.example.login;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import com.example.login.service.FileService;
public class LoginActivity extends Activity {
public EditText edit_name,edit_pass;
public Button btn_login;
public CheckBox box_remeber;
public FileService fileService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
fileService= new FileService( this );
edit_name=(EditText) findViewById(R.id.edit_name);
edit_pass=(EditText) findViewById(R.id.edit_pass);
btn_login=(Button) findViewById(R.id.btn_login);
box_remeber=(CheckBox) findViewById(R.id.cbx_remember);
btn_login.setOnClickListener( new MyOnClickListener());
Map<String, String> map=fileService.readFile( "private.txt" );
if (map!= null ){
edit_name.setText(map.get( "name" ));
edit_pass.setText(map.get( "pass" ));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login, menu);
return true ;
}
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
int id=v.getId();
switch (id) {
case R.id.btn_login:
String name=edit_name.getText().toString();
String pass=edit_pass.getText().toString();
if (TextUtils.isEmpty(name)){
Toast.makeText(LoginActivity. this , "用户名不能为空" , Toast.LENGTH_SHORT).show();
return ;
} else if (TextUtils.isEmpty(pass)){
Toast.makeText(LoginActivity. this , "密码不能为空" , Toast.LENGTH_SHORT).show();
return ;
} else {
if (box_remeber.isChecked()){
LoginActivity. this .fileService.saveToRom(name, pass, "private.txt" );
Toast.makeText(LoginActivity. this , "用户名和密码已保存" , Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(LoginActivity. this , "用户名和密码不需要保存" , Toast.LENGTH_SHORT).show();
}
}
break ;
default :
break ;
}
/*if(id==btn_login.getId()){
String name=edit_name.getText().toString();
String pass=edit_pass.getText().toString();
if(TextUtils.isEmpty(name)){
Toast.makeText(LoginActivity.this, "用户名不能为空", Toast.LENGTH_SHORT).show();
return;
}else if(TextUtils.isEmpty(pass)){
Toast.makeText(LoginActivity.this, "密码不能为空", Toast.LENGTH_SHORT).show();
return;
}else{
if(box_remeber.isChecked()){
LoginActivity.this.fileService.saveToRom(name, pass, "private.txt");
Toast.makeText(LoginActivity.this, "用户名和密码已保存", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(LoginActivity.this, "用户名和密码不需要保存", Toast.LENGTH_SHORT).show();
}
}
}*/
}
}
}
|
FileService.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package com.example.login.service;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import com.example.login.utils.StreamTools;
import android.content.Context;
public class FileService {
public Context context;
public FileService(Context context) {
this .context = context;
}
public boolean saveToRom(String name,String pass,String fileName){
try {
FileOutputStream fos=context.openFileOutput(fileName, Context.MODE_PRIVATE);
String result=name+ ":" +pass;
fos.write(result.getBytes());
fos.flush();
fos.close();
} catch (Exception e){
e.printStackTrace();
return false ;
}
return true ;
}
public Map<String,String> readFile(String fileName){
Map<String,String> map= null ;
try {
FileInputStream fis=context.openFileInput(fileName);
String value=StreamTools.getValue(fis);
String values[]=value.split( ":" );
if (values.length> 0 ){
map= new HashMap<String, String>();
map.put( "name" , values[ 0 ]);
map.put( "pass" , values[ 1 ]);
}
} catch (Exception e){
e.printStackTrace();
}
return map;
}
}
|
StreamTools.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package com.example.login.utils;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
public class StreamTools {
public static String getValue(FileInputStream fis) throws Exception{
ByteArrayOutputStream stream= new ByteArrayOutputStream();
byte [] buffer= new byte [ 1024 ];
int length=- 1 ;
while ((length=fis.read(buffer))!=- 1 ){
stream.write(buffer, 0 ,length);
}
stream.flush();
stream.close();
String value=stream.toString();
return value;
}
}
|
login_activity.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
< 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 = ".LoginActivity" >
< LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_alignParentLeft = "true"
android:layout_alignParentTop = "true"
android:orientation = "vertical" >
< LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content" >
< TextView
android:id = "@+id/view_name"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/text_name" />
< EditText
android:id = "@+id/edit_name"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_weight = "1"
android:ems = "10"
android:inputType = "textPersonName" >
< requestFocus />
</ EditText >
</ LinearLayout >
< LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content" >
< TextView
android:id = "@+id/view_pass"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/text_pass" />
< EditText
android:id = "@+id/edit_pass"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_weight = "1"
android:ems = "10"
android:inputType = "textPassword" />
</ LinearLayout >
< LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content" >
< Button
android:id = "@+id/btn_login"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_weight = "0.17"
android:text = "@string/text_login" />
< CheckBox
android:id = "@+id/cbx_remember"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginLeft = "80dp"
android:text = "@string/text_rember" />
</ LinearLayout >
</ LinearLayout >
</ RelativeLayout >
|
String.xml:
1
2
3
4
5
6
7
8
9
10
|
<? xmlversion = "1.0" encoding = "utf-8" ?>
< resources >
< stringname = "app_name" >login</ string >
< stringname = "action_settings" >Settings</ string >
< stringname = "hello_world" >Login</ string >
< stringname = "text_name" >用户名:</ string >
< stringname = "text_pass" >密 码:</ string >
< stringname = "text_login" >登陆</ string >
< stringname = "text_rember" >记住密码</ string >
</ resources >
|
希望本文所述对大家Android程序设计有所帮助。