• 【Android】实验二 Android GUI开发


    一、实验目的

    1、学习android程序GUI的开发方法。

    2、学习android程序一个RelativeLayout布局的开发方法。

    二、实验内容

    1、实现个人爱好的设置界面,包含4种个人爱好,分别为运动、学习、看书和爬山,并且用户能同时选择多个爱好。

    2、使用RelativeLayout布局完成如下界面的设计,可以尝试对按钮进行事件处理。

     

    三、实验步骤

    1、建立一个android工程,修改main.xml文件并编写程序代码,设计一个个人爱好的设置界面,包含4种个人爱好,分别为运动、学习、看书和爬山,并且用户能同时选择多个爱好,选定后点击按钮,显示选择的内容。

    2、编写程序,实现如图所示的RelativeLayout布局。

    四、考核标准

    1、完成全部题目,设计合理,结果正确;评定为A。

    2、完成部分题目,设计比较合理,结果正确;根据实际情况评定为B或C。

    3、未独立完成实验要求;评定为D。

    五、实验源码

    爱好

    布局

    1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. xmlns:tools="http://schemas.android.com/tools"
    3. android:layout_width="match_parent"
    4. android:layout_height="match_parent"
    5. android:paddingBottom="@dimen/activity_vertical_margin"
    6. android:paddingLeft="@dimen/activity_horizontal_margin"
    7. android:paddingRight="@dimen/activity_horizontal_margin"
    8. android:paddingTop="@dimen/activity_vertical_margin"
    9. tools:context=".MainActivity" >
    10. <CheckBox
    11. android:id="@+id/checkBox1"
    12. android:layout_width="wrap_content"
    13. android:layout_height="wrap_content"
    14. android:layout_marginTop="20dp"
    15. android:text="运动" />
    16. <CheckBox
    17. android:id="@+id/checkBox2"
    18. android:layout_width="wrap_content"
    19. android:layout_height="wrap_content"
    20. android:layout_alignLeft="@+id/checkBox1"
    21. android:layout_below="@+id/checkBox1"
    22. android:layout_marginTop="20dp"
    23. android:text="学习" />
    24. <CheckBox
    25. android:id="@+id/checkBox3"
    26. android:layout_width="wrap_content"
    27. android:layout_height="wrap_content"
    28. android:layout_alignLeft="@+id/checkBox2"
    29. android:layout_below="@+id/checkBox2"
    30. android:layout_marginTop="20dp"
    31. android:text="看书" />
    32. <CheckBox
    33. android:id="@+id/checkBox4"
    34. android:layout_width="wrap_content"
    35. android:layout_height="wrap_content"
    36. android:layout_alignLeft="@+id/checkBox4"
    37. android:layout_below="@+id/checkBox3"
    38. android:layout_marginTop="20dp"
    39. android:text="爬山" />
    40. <Button
    41. android:id="@+id/button1"
    42. android:layout_width="wrap_content"
    43. android:layout_height="wrap_content"
    44. android:layout_below="@+id/checkBox4"
    45. android:text="提交" />
    46. </RelativeLayout>

    功能实现

    1. package com.example.guihobby;
    2. import android.app.Activity;
    3. import android.os.Bundle;
    4. import android.util.Log;
    5. import android.view.View;
    6. import android.view.View.OnClickListener;
    7. import android.widget.Button;
    8. import android.widget.CheckBox;
    9. import android.widget.CompoundButton;
    10. import android.widget.CompoundButton.OnCheckedChangeListener;
    11. import android.widget.Toast;
    12. public class MainActivity extends Activity {
    13. private OnCheckedChangeListener checkBox_listener;
    14. @Override
    15. protected void onCreate(Bundle savedInstanceState) {
    16. super.onCreate(savedInstanceState);
    17. setContentView(R.layout.activity_main);
    18. checkBox_listener = new OnCheckedChangeListener() {
    19. @Override
    20. public void onCheckedChanged(CompoundButton buttonView,
    21. boolean isChecked) {
    22. if (isChecked) {
    23. Log.i("复选框", "选中了[" + buttonView.getText().toString() + "]");
    24. }
    25. }
    26. };
    27. final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
    28. final CheckBox checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
    29. final CheckBox checkBox3 = (CheckBox) findViewById(R.id.checkBox3);
    30. final CheckBox checkBox4 = (CheckBox) findViewById(R.id.checkBox4);
    31. checkBox1.setOnCheckedChangeListener(checkBox_listener);
    32. checkBox2.setOnCheckedChangeListener(checkBox_listener);
    33. checkBox3.setOnCheckedChangeListener(checkBox_listener);
    34. checkBox4.setOnCheckedChangeListener(checkBox_listener);
    35. // 为"提交"按钮添加单击事件监听器
    36. Button button = (Button) findViewById(R.id.button1);
    37. button.setOnClickListener(new OnClickListener() {
    38. @Override
    39. public void onClick(View arg0) {
    40. String hobby = "";// 保存选中的值
    41. if (checkBox1.isChecked()) {
    42. hobby += checkBox1.getText().toString() + "";// 当第一个复选框被选中
    43. }
    44. if (checkBox2.isChecked()) {
    45. hobby += checkBox2.getText().toString() + "";// 当第二个复选框被选中
    46. }
    47. if (checkBox3.isChecked()) {
    48. hobby += checkBox3.getText().toString() + "";// 当第三个复选框被选中
    49. }
    50. if (checkBox4.isChecked()) {
    51. hobby += checkBox4.getText().toString() + "";// 当第四个复选框被选中
    52. }
    53. // 显示被选中的复选框
    54. Toast.makeText(MainActivity.this, hobby, Toast.LENGTH_SHORT)
    55. .show();
    56. }
    57. });
    58. }
    59. }

    RelativeLayout布局

    1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. xmlns:tools="http://schemas.android.com/tools"
    3. android:layout_width="match_parent"
    4. android:layout_height="match_parent"
    5. android:paddingBottom="@dimen/activity_vertical_margin"
    6. android:paddingLeft="@dimen/activity_horizontal_margin"
    7. android:paddingRight="@dimen/activity_horizontal_margin"
    8. android:paddingTop="@dimen/activity_vertical_margin"
    9. tools:context=".MainActivity" >
    10. <TextView
    11. android:id="@+id/label"
    12. android:layout_width="fill_parent"
    13. android:layout_height="wrap_content"
    14. android:text="Type here:" />
    15. <EditText
    16. android:id="@+id/entry"
    17. android:layout_width="fill_parent"
    18. android:layout_height="wrap_content"
    19. android:layout_below="@id/label" />
    20. <Button
    21. android:id="@+id/ok"
    22. android:layout_width="wrap_content"
    23. android:layout_height="wrap_content"
    24. android:layout_alignParentRight="true"
    25. android:layout_below="@id/entry"
    26. android:layout_marginLeft="10px"
    27. android:text="OK" />
    28. <Button
    29. android:id="@+id/cancel"
    30. android:layout_width="wrap_content"
    31. android:layout_height="wrap_content"
    32. android:layout_alignTop="@id/ok"
    33. android:layout_toLeftOf="@id/ok"
    34. android:text="Cancel" />
    35. </RelativeLayout>

    六、实验效果截图

    爱好

    RelativeLayout布局截图

    需要完整源码可私信我,看到就回。

     

  • 相关阅读:
    云存储目前面临的3个问题
    Sentinel入门开发
    Hadoop系列(四)——Zookeeper总结
    python读取图片
    ssm和springboot整合
    Excel中输入整数却总是显示小数,如何调整?
    【EMC专题】浪涌抗扰度测试
    Linux ——shell的模拟实现
    springcloud入门
    《遥感学报》
  • 原文地址:https://blog.csdn.net/weixin_45906196/article/details/124891131