临沂大学信息学院
学生上机(实验)报告
课程名称:Android移动智能开发技术
指导教师:
学生姓名:
学号:
一、实验名称
界面登录设计实验
二、实验内容(具体的程序)
1、建两个ACTIVITY,实现从界面一跳转到界面二。
2、在主界面添加按钮等控件。
3、在MainActivity里写代码
package com.example.and;
import android.os.Bundle;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import poundButton;
import poundButton.OnCheckedChangeListener; import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
Button btn;
OnClickListener lis;
EditText etname;
EditText etpwd;
CheckBox ch1;
CheckBox ch2;
SharedPreferences sf ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_main);
btn =(Button) findViewById(R.id.btnlogin);
etname = (EditText)findViewById(R.id.etname);
etpwd = (EditText)findViewById(R.id.etpwd);
ch1 = (CheckBox)findViewById(R.id.checkBox1);
ch2 = (CheckBox)findViewById(R.id.checkBox2);
sf = getSharedPreferences("my",Activity.MODE_PRIVA TE);
if(sf.getBoolean("ch1", false)==true)
{
etname.setText(sf.getString("name", ""));
etpwd.setText(sf.getString("pwd", ""));
ch1.setChecked(true);
}
if(sf.getBoolean("ch2", false)==true)
{
Intent intent = new Intent(MainActivity.this,SecActivity.class);
startActivity(intent);
}
lis = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final String namestr = etname.getText().toString();
final String pwdstr = etpwd.getText().toString();
if(etname.getText().toString().equals("yang") && etpwd.getText().toString().equals("123"))
{
if(ch1.isChecked())
{
Editor et = sf.edit();
et.putString("name", etname.getText().toString());
et.putString("pwd", etpwd.getText().toString());
mit();
}
Intent intent = new Intent(MainActivity.this,SecActivity.class);
startActivity(intent);
}else
{
Editor et = sf.edit();
et.putBoolean("ch2", false);
mit();
Toast.makeText(MainActivity.this, "Name or Password is wrong!", Toast.LENGTH_LONG).show();
}
}
};
ch1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked == true){
Editor et = sf.edit();
et.putBoolean("ch1", true);
mit();
}else{
Editor et = sf.edit();
et.putBoolean("ch1", false);
mit();
}
}
});
ch2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked == true){
ch1.setChecked(true);
Editor et = sf.edit();
et.putBoolean("ch2", true);
mit();
}else{
ch1.setChecked(true);
Editor et = sf.edit();
et.putBoolean("ch2", false);
mit();
}
}
});
btn.setOnClickListener(lis);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
三、实验结果讨论与总结
实验结果截图:
个人总结:
在这次试验过程中,主要是跟着老师一步一步实现界面登陆的功能。
老师的要求是根据自己的记忆来写代码,而我有的时候不看老师的代码就写不出来,这应该是试验中暴露出来的问题。
再有就是点保存后,如果你输入的是错误的账号和密码,他同样会记住,这样无疑就给用户的登陆带来了麻烦,当然,这个问题最终是解决了的,那就是在代码中添加一个if 条件判断语句,这样机器就能区分账号密码的正确性而选择是否进行保存。
这样就不会因为用户的失误而给用户带来不必要的麻烦。