本文实例讲述了Android开发之完成登陆界面的数据保存回显操作。分享给大家供大家参考,具体如下:
LoginActivity.java:
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:
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:
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:
<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:
<?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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/5898
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我