本文实例讲述了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程序设计有所帮助。