用户界面设计实验指导书

Android实验报告指导书

实验一 Android用户界面设计与实现

一、实验目的
(1)掌握各种界面布局的特点和使用方法;
(2)掌握选项菜单、子菜单和快捷菜单的使用方法;
(3)掌握按键事件和触摸事件的处理方法;
(4)学习Android应用界面的设计;
(5)学习使用Android应用界面框架和常用控件。
二、实验环境
(1) 硬件:PC 机,其它相关硬件 ;
(2)软件:Windows XP,Android Studio集成开发环境,Android Development Tools插件。
三、实验内容及 要求
(1)熟练Android系统一些常用的组件及界面布局;
(2)加深对各个组件功能的认识;
(3)熟练组件与用户进行交互功能的实现;
(4)分析和运行应用程序代码,了解常用组件,掌握控件的事件处理;
(5)编写程序代码,实现一个“用户信息注册与显示”,如图所示,并为按钮添加相应的事件处理函数。

四、实验步骤
(1)创建“登录页面”程序
创建一个名为“登录页面”的布局文件login.xml,该文件用于展示登录信息。程序界面如下图所示:
用户界面设计实验指导书_第1张图片
创建“登录页面”的界面交互代码Login.java,该程序实现用户信息的输入与显示,并通过点击按钮实现界面的切换。关键代码如下:
public class Login extends AppCompatActivity {
/**
* Called when the activity is first created.
*/
private EditText unameEt, upassEt;
private Button submit, register;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    unameEt = (EditText) findViewById(R.id.username);
    upassEt = (EditText) findViewById(R.id.password);
    //register=findViewById(R.id.register);


    submit = (Button) findViewById(R.id.submit);
    submit.setOnClickListener(
            new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    String username = unameEt.getText().toString();
                    String password = upassEt.getText().toString();
                    SharedPreferences references = getSharedPreferences("account", Context.MODE_PRIVATE);
                    String name = references.getString("username", "");
                    String psw = references.getString("password", "");
                    if (username.isEmpty() | password.isEmpty()) {
                        String sb = "用户名和密码不能为空";
                        Toast.makeText(Login.this, sb.toString(), Toast.LENGTH_LONG).show();
                    } else if (name.equals(username) && psw.equals(password)) {

                        Intent intent1 = new Intent(Login.this, LoginOk.class);
                        startActivity(intent1);
                    } else {
                        String sb = "请输入正确的用户名和密码";
                        Toast.makeText(Login.this, sb.toString(), Toast.LENGTH_LONG).show();
                    }
                }
            });
}

public void Click(View v) {
    Intent intent = new Intent(Login.this, Register.class);
    startActivityForResult(intent, 1);
    //Toast.makeText(this,"注册成功",Toast.LENGTH_LONG).login_ok();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == 1) {
            String name = data.getStringExtra("uname");
            String pass = data.getStringExtra("upassword");
            unameEt.setText(name);
            upassEt.setText(pass);
        }
    }
}

}
`(2)创建“注册页面”程序
创建一个名为“注册页面”的布局文件,该文件用于展示登录信息。程序界面如下图所示:
用户界面设计实验指导书_第2张图片
创建“注册页面”的界面交互代码Register.java,该程序实现用户信息的注册与数据传递,并通过点击按钮实现界面的切换。关键代码如下:

public class Register extends  Activity{
   private Spinner mySpinner;
   private static final String[] provStr={"学生","老师","管理员","行政员"};
   private ArrayAdapter<String>  adapter1;
   private CheckBox  Sport_CheckBox, Music_CheckBox, ReadBook_CheckBox,Internet_CheckBox;
   private RadioGroup radioGroup;
   private RadioButton radiobutton1,radiobutton2;
   private EditText et_user,et_passwd;
   private Button bt_register,bt_cancel,bt_ok;
   private TextView tv;
   private String sex;
   @ Override 
   public void onCreate(Bundle savedInstanceState) { 
   super.onCreate(savedInstanceState); 
   setContentView(R.layout.register); 
    mySpinner=(Spinner) findViewById(R.id.zhiwu);
     adapter1=new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item,provStr);
     adapter1.setDropDownViewResource(android.R.layout.simple_spinner_item);
      //将 ArrayAdapter添加Spinner对象中
      mySpinner.setAdapter(adapter1);
   Sport_CheckBox=(CheckBox) findViewById(R.id.love_sport);
   Music_CheckBox=(CheckBox) findViewById(R.id.love_music);
   ReadBook_CheckBox=(CheckBox) findViewById(R.id.love_readbook);
   Internet_CheckBox=(CheckBox) findViewById(R.id.love_Internet); 
   final EditText et_user=(EditText) findViewById(R.id.et_user);
   final EditText et_passwd=(EditText) findViewById(R.id.password);
   bt_register=(Button)findViewById(R.id.register);
   bt_cancel=(Button)findViewById(R.id.cancel);
   bt_ok=(Button)findViewById(R.id.ok);
   tv=(TextView)findViewById(R.id.Result);
   radioGroup=(RadioGroup)findViewById(R.id.Sex_RadioGroup);
   radiobutton1=(RadioButton)findViewById(R.id.Sex_Man);
   radiobutton2=(RadioButton)findViewById(R.id.Sex_Woman);
      final Intent intent=new Intent(Register.this,RegisterOk.class);

      bt_register.setOnClickListener(new OnClickListener() {
      public void onClick(View v) { 
         String username=et_user.getText().toString().trim();
         //获得密码:调用EditText的getText()方法
         String userpassword=et_passwd.getText().toString().trim();
         //String result="";
         if(username.isEmpty()|| userpassword.isEmpty()) {
            String sb = "请输入用户名和密码";
            Toast.makeText(Register.this, sb.toString(), Toast.LENGTH_LONG).show();
         }else{
            intent.putExtra("name",username);
            intent.putExtra("password",userpassword);

         //获得性别
         String sex="";
         if (radiobutton1.isChecked()){sex="男";}
         if(radiobutton2.isChecked()){sex="女";}
         intent.putExtra("s",sex);

          //获得身份
         String st=mySpinner.getSelectedItem().toString().trim();
         if(st!=""){
            intent.putExtra("stuta",st);
         }else{
            Toast.makeText(Register.this, "请选择身份", Toast.LENGTH_LONG).show();
         }
         //获得爱好
         String  hobby="";
         if (Sport_CheckBox.isChecked()){hobby+=" 运动";}
         if (Music_CheckBox.isChecked()){hobby+=" 音乐";}
         if (ReadBook_CheckBox.isChecked()){hobby+=" 读书";}
         if (Internet_CheckBox.isChecked()){hobby+=" 上网";}
         intent.putExtra("hobby", hobby);
         startActivity(intent);
         }
//       数据存储
         SharedPreferences references
            =Register.this.getSharedPreferences("account", Context.MODE_PRIVATE);
               Editor editor=references.edit();
               editor.putString("username", username);
               editor.putString("password", userpassword);
               editor.commit();
             
         }

   });
      bt_ok.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
            String username=et_user.getText().toString();
            //获得密码:调用EditText的getText()方法
            String userpassword=et_passwd.getText().toString();
            Intent intentok=new Intent();
            intentok.putExtra("uname",username);
            intentok.putExtra("upassword",userpassword);
            setResult(1,intentok);
            finish();
         }

      });
   bt_cancel.setOnClickListener(new OnClickListener() {   
      public void onClick(View v) { 
         et_user.setText("");
         et_passwd.setText("");
      }
      });

   }
   
}

(3)创建“用户信息显示界面”
创建一个名为“用户信息显示界面”的布局文件registerok.xml,该文件用于展示用户注册信息。程序界面如下图所示:
用户界面设计实验指导书_第3张图片
图3用户信息显示界面
创建“用户信息显示界面”的界面交互代码RegisterokActivity.java,该程序实现用户信息显示。关键代码如下:

public class RegisterOk extends AppCompatActivity {
    private TextView tv_name, tv_password,tv_sex,tv_st,tv_hobby;
    private Button return_but;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register_ok);
        tv_name = (TextView) findViewById(R.id.tV1);
        tv_password = (TextView) findViewById(R.id.tV2);
        tv_sex = (TextView) findViewById(R.id.tV3);
        tv_st = (TextView) findViewById(R.id.tV5);
        tv_hobby = (TextView) findViewById(R.id.tV4);
        return_but = (Button) findViewById(R.id.but);
        Intent intent = getIntent();
        String name = intent.getStringExtra("name");
        String password = intent.getStringExtra("password");
        String s = intent.getStringExtra("s");
        String id = intent.getStringExtra("stuta");
        String hobby = intent.getStringExtra("hobby");
        tv_name.setText("用户名:" + name);
        tv_password.setText("密   码:" + password);
        tv_sex.setText("性   别:" + s);
        tv_st.setText("身   份:" + id);
        tv_hobby.setText("爱好:" + hobby);


    }
public void click(View view){
        finish();
    /*Intent intent1=new Intent(this,Register.class);
    startActivity(intent1);*/
}
}

(3)创建“登录成功”程序
创建一个名为“注册页面”的布局文件,该文件用于展示登录信息。程序界面如下图所示:
用户界面设计实验指导书_第4张图片
创建“登录成功页面”的界面交互代码Activity1.java,该程序实现用户信息显示。关键代码如下:

public class LoginOk extends AppCompatActivity {
    /** Called when the activity is first created. */
    private TextView result1;    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_ok);
        result1=(TextView)this.findViewById(R.id.textView1);
}
public void click(View v){
    Intent intent=new Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.setData(Uri.parse("http://www.baidu.com"));
    startActivity(intent);
}
}

你可能感兴趣的:(实验指导)