第一步:将QQ头像粘贴到drawable—hdpi中
第二步:在xml布局文件中编辑页面布局(ImageView,EditText,CheckBox,Button)
<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:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入QQ号码"
android:id="@+id/et_qqnumber"/>
<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="match_parent"
android:layout_height="wrap_content"
android:text="记住用户和密码"/>
<Button
android:onClick="login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登陆"/>
</LinearLayout>
第三步:在java中编辑逻辑
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);
//寻找这些控件
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");
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();
String qq = info.split("##")[0];
String pwd = info.split("##")[1];
et_qqnumber.setText(qq);
et_password.setText(pwd);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}