zoukankan      html  css  js  c++  java
  • 20155314 2016-2017-2 《Java程序设计》实验四 Android程序设计

    20155314 2016-2017-2 《Java程序设计》实验四 Android程序设计

    实验任务

    • 基于Android Studio开发简单的Android应用并部署测试
    • 了解Android组件、布局管理器的使用
    • 掌握Android中事件处理机制
    • AndroidStudio安装

    实验内容

    1. 实验四 Android程序设计-1

      Android Stuidio的安装测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:

      • 安装 Android Stuidio
      • 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分
      • 学习Android Stuidio调试应用程序
    2. 实验四 Android程序设计-2

      Activity测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:

      • 构建项目,运行教材相关代码
      • 创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
      • 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
    3. 实验四 Android程序设计-3

      UI测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:

      • 构建项目,运行教材相关代码
      • 修改代码让Toast消息中显示自己的学号信息
      • 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
    4. 实验四 Android程序设计-4

      布局测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:

      • 构建项目,运行教材相关代码
      • 修改布局让P290页的界面与教材不同
      • 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
    5. 实验四 Android程序设计-5

      事件处理测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:

      • 构建项目,运行教材相关代码
      • 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

    实验步骤

    (一)Android Stuidio的安装测试

    1. 安装 Android Stuidio

    2. 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号

      • 操作过程:
        修改res目录下的layout文件夹中的activity_main.xml布局文件,将其中的android:text="Hello World!"改为android:text="Hello World!20155314"

      • 实验代码:

          <?xml version="1.0" encoding="utf-8"?>
          <android.support.constraint.ConstraintLayout
              xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              tools:context="com.example.dell1.helloworld.MainActivity">
          
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="Hello World!20155314"
                  app:layout_constraintBottom_toBottomOf="parent"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toTopOf="parent" />
          
          </android.support.constraint.ConstraintLayout>
        
      • 运行结果截图:

    3. 学习Android Stuidio调试应用程序

    (二)Activity测试

    1. 构建项目,运行教材相关代码
    2. 创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
      • 操作过程:
        修改MainActivity.java代码,利用Intent类,调用 startActivity方法使其启动ThirdActivity

      • 实验代码:

          package com.example.dell1.activitydemo;
          
          //import android.support.v7.app.AppCompatActivity;
          import android.os.Bundle;
          import android.app.Activity;
          import android.content.Intent;
          import android.view.Menu;
          import android.view.MotionEvent;
          import android.view.View;
          import android.view.View.OnTouchListener;
          import android.widget.TextView;
          
          
          public class MainActivity extends Activity implements
              OnTouchListener {
          
              @Override
              protected void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.activity_main);
                  TextView tv = (TextView) findViewById(R.id.textView1);
                  tv.setOnTouchListener(this);
              }
              @Override
              public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it
          // is present.
                  getMenuInflater().inflate(R.menu.menu_main, menu);
                  return true;
              }
              @Override
              public boolean onTouch(View arg0, MotionEvent event) {
                  Intent intent = new Intent(this, ThirdActivity.class);
                  intent.putExtra("message", "20155314刘子健");
                  startActivity(intent);
                  return true;
              }
          }
        
      • 运行结果截图:

    (三)UI测试

    1. 构建项目,运行教材相关代码
    2. 修改代码让Toast消息中显示自己的学号信息
      • 实验代码:

        • MainActivity.java:

            package com.example.dell1.basiccomponents;
            
            import android.content.Context;
            import android.support.v7.app.AppCompatActivity;
            import android.os.Bundle;
            import android.app.Activity;
            import android.util.AttributeSet;
            import android.view.Menu;
            import android.view.MenuItem;
            import android.view.View;
            import android.widget.Button;
            import android.widget.Toast;
            
            public class MainActivity extends AppCompatActivity {
            
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
                    Button btnshow1=(Button) findViewById(R.id.btn1);
                    btnshow1.setOnClickListener(new View.OnClickListener()
                    {
                        @Override
                        public void onClick(View v){
                            Toast toast = Toast.makeText(MainActivity.this,"20155314刘子健", Toast.LENGTH_LONG);
                            toast.show();
            
                        }
                    });
                }
            
                @Override
                public boolean onCreateOptionsMenu(Menu menu) {
                    // Inflate the menu; this adds items to the action bar if it
                    // is present.
                    getMenuInflater().inflate(R.menu.menu_main, menu);
                    return true;
                }
            
            
               /* @Override
                public boolean onOptionsItemSelected(MenuItem item) {
                    switch (item.getItemId())
                    {
                        case R.id. id_action_add:
                            //事件
                            break;
                        case R.id. id_action_delete:
                            //事件
                            break;
                    }
                    return true;
            
                }*/
            
            }
          
        • activity_main:

            <?xml version="1.0" encoding="utf-8"?>
            <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="com.dragon.toast.Main">
            
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="20155314刘子健"
                    android:id="@+id/btn1"
                    android:layout_alignParentTop="true"
                    android:layout_marginTop="31dp"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true" />
            </RelativeLayout>
          
      • 运行结果截图:

    (四)布局测试

    1. 构建项目,运行教材相关代码

    2. 修改布局让P290页的界面与教材不同

      • 操作过程:
        修改activity_main.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:paddingLeft="2dp"
              android:paddingRight="2dp">
              <Button
                  android:id="@+id/cancelButton"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="20155314"
                  android:layout_marginTop="70dp"
                  android:layout_alignParentTop="true"
                  android:layout_centerHorizontal="true" />
              <Button
                  android:id="@+id/saveButton"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="刘子健"
                  android:layout_below="@+id/cancelButton"
                  android:layout_alignLeft="@+id/cancelButton"
                  android:layout_alignStart="@+id/cancelButton"
                  android:layout_marginTop="23dp" />
              <ImageView
                  android:layout_width="150dp"
                  android:layout_height="150dp"
                  android:layout_marginTop="45dp"
                  android:padding="4dp"
                  android:src="@android:drawable/ic_dialog_email"
                  android:id="@+id/imageView"
                  android:layout_below="@+id/saveButton"
                  android:layout_centerHorizontal="true" />
              <LinearLayout
                  android:id="@+id/filter_button_container"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_alignParentBottom="true"
                  android:gravity="center|bottom"
                  android:background="@android:color/white"
                  android:orientation="horizontal" >
                  <Button
                      android:id="@+id/filterButton"
                      android:layout_width="wrap_content"
                      android:layout_height="fill_parent"
                      android:text="Filter" />
                  <Button
                      android:id="@+id/shareButton"
                      android:layout_width="wrap_content"
                      android:layout_height="fill_parent"
                      android:text="Share" />
                  <Button
                      android:id="@+id/deleteButton"
                      android:layout_width="wrap_content"
                      android:layout_height="fill_parent"
                      android:text="Delete" />
              </LinearLayout>
          </RelativeLayout>
        
      • 运行结果截图:

    (五)事件处理测试

    • 构建项目,运行教材相关代码

      • 课本代码(P298):

          int counter = 0;
              int[] colors = { Color.BLACK, Color.BLUE, Color.CYAN,
                      Color.DKGRAY, Color.GRAY, Color.GREEN, Color.LTGRAY,
                      Color.MAGENTA, Color.RED, Color.WHITE, Color.YELLOW };
              @Override
              protected void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.activity_main);
              }
              @Override
              public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it
          // is present.
                  getMenuInflater().inflate(R.menu.menu_main, menu);
                  return true;
              }
              public void changeColor(View view) {
                  if (counter == colors.length) {
                      counter = 0;
                  }
                  view.setBackgroundColor(colors[counter++]);
              }
        
      • 运行结果截图:

    实验报告中统计自己的PSP(Personal Software Process)时间

    步骤 耗时 百分比
    需求分析 6min 6.5%
    设计 20min 21.7%
    代码实现 25min 27.2%
    测试 11min 12.0%
    分析总结 30min 32.6%

    实验过程中遇到的问题及解决

    关于电脑虚拟化功能未打开的问题

    • 解决方法:进入hp笔记本的BIOS界面,打开虚拟化功能







    实验体会与总结

    “自己动手,丰衣足食。”

    本次Java实验让我更切身感受到动手实践的重要性,避免眼高手低勤于动手、热衷实践才是学好一切的王道。

    参考资料

    工具

    1. JUnit
    2. umbrello
    3. StarUML
  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/crazymosquito/p/7077272.html
Copyright © 2011-2022 走看看