zoukankan      html  css  js  c++  java
  • 20182301 2019-2020-1 《数据结构与面向对象程序设计》实验5报告

    20182301 2019-2020-1 《数据结构与面向对象程序设计》实验5报告

    课程:《程序设计与数据结构》
    班级: 1823
    姓名: 赵沛凝
    学号:20182301
    实验教师:王志强
    实验日期:2019年9月16日
    必修/选修: 必修

    1.实验内容

    • Android Stuidio的安装测试:

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

    • 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio

    • 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分

    • 学习Android Stuidio调试应用程序

    • Activity测试

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

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

    • 创建 ThirdActivity,

    • 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity

    • UI测试

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

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

    • 修改代码让Toast消息中显示自己的学号信息

    • 布局测试:

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

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

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

    • 事件处理测试:

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

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

    • 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

    2. 实验过程及结果

    第一个:

    • 安装Android stdio
    • 一路next直到遇见如下图:不需要设置什么,直接取消

    • 下面是一些基本设置以及下载

    • 选择手机尺寸

    • 下载手机配置

    • 修改代码中的一些东西:

    第二个

    • 小总结:Activity类定义的回调事件有:

      • onCreate():当Activity首次被创建时会调用它
      • onStart():当Activity对于用户来说变为可视状态时会回调此方法
      • onResume():当用户开始与应用交互时会调用此方法
      • onPause():当前的Activity正在暂停中,并且先前的Activity正在恢复时,被暂停的这个Activity不会再接收用户的输入,也不再执行任何代码和调用
      • onStop():当Activity不再为可视状态时会调用该回调方法
      • onDestroy():该方法会在Activity被系统销毁前被调用
      • onRestart():当Activity在被停止后重新启动时,会调用该回调方法
    • 在AndroidManifest.xml中新建一个ThirdActivity窗口,添加完后要有后缀代码,添加窗口的代码如下

    <activity android:name=".ThirdActivity"></activity>
    
    • 新建ThirdActivity,如图:

    • 根据实际要求"在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity"和书上已有代码进行修改activity_main;activity_third
    • 修改MainActivity.java
    @Override
                public void onClick(View v) {
                    Intent intent = new Intent(
                            MainActivity.this, SecondActivityDemo.class); // 创建一个Intent对象
                           startActivity(intent);
                }
    
    • 结果如图:

    第三个

    这个实验较为简单,修改如下两个代码:

    • MainActivity

    • 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:paddingLeft="2dp"
     	    android:paddingRight="2dp">
     	    <Button
     	        android:id="@+id/cancelButton"
     	        android:layout_width="wrap_content"
     	        android:layout_height="wrap_content"
     	        android:layout_alignParentTop="true"
     	        android:layout_centerHorizontal="true"
     	        android:layout_marginTop="89dp"
     	        android:text="20182301" />
     	    <Button
     	        android:id="@+id/saveButton"
     	        android:layout_width="wrap_content"
     	        android:layout_height="wrap_content"
     	        android:text="zhaopeining"
     	        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_btn_speak_now"
     	        tools:srcCompat="@tools:sample/avatars[8]" />
     	    <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="172dp"
     	        android:layout_height="61dp"
     	        android:layout_alignEnd="@+id/saveButton"
     	        android:layout_alignParentBottom="true"
     	        android:layout_marginEnd="89dp"
     	        android:layout_marginBottom="107dp"
     	        android:text="Filter" />
     	
     	    <Button
     	        android:id="@+id/shareButton"
     	        android:layout_width="169dp"
     	        android:layout_height="65dp"
     	        android:text="Share" />
     	
     	    <Button
     	        android:id="@+id/deleteButton"
     	        android:layout_width="225dp"
     	        android:layout_height="75dp"
     	        android:layout_alignEnd="@+id/filterButton"
     	        android:layout_centerVertical="true"
     	        android:text="Delete" />
     	
     	
     	</RelativeLayout>
    
    

    代码结果:

    第五个

    该实验仅是运行书上代码,结果如图:

    3. 实验过程中遇到的问题和解决过程

    • 问题1:新建new module 时出现“Project needs to be converted to androidx.* dependencies”如下图:

    • 问题1解决方案:
    • 方法一:把整个项目升级到AndroidX
    • 方法二:项目不升级到AndroidX
    • gradle.properties下添加如下,然后点一下右上角Sync Now
    android.useAndroidX=true
    android.enableJetifier=true
    
    • 新建module_test,这时就没有“Project needs to be converted to androidx.* dependencies”,File——New——New Module——Android Library(Next)——填好信息后Finish
    • 把module_test的build.gradle——dependencies下引入的androidX包改成android的,如果不知道怎么改,就从原先的module对应的build.gradle里拷贝过来
    • 在步骤一种添加的改成false
    android.useAndroidX=false
    android.enableJetifier=false
    
    • 问题2:从一个应用的activity跳转到另一个应用的activity,应该怎么办?
    • 问题2解决方案:
    • 只要包名设置对了,直接调用intent就可以跳转
      要跳转的activity的exported属性设置为true
    Intent intent = new Intent();  
    ComponentName cn = new ComponentName("com.corp.timetest","com.corp.timetest.LoginActivity");
    intent.setComponent(cn);
     
    或者设置className,取代设置componentName:
    intent.setClassName("com.landicorp.packname.test", "com.landicorp.packname.test.secondpkg.jump.TaskAffinityTestActivity");
    

    其他(感悟、思考等)

    • 本次实验让我认识到课本知识是非常重要的,学好例子才能够更好地进行拓展。

    参考资料

  • 相关阅读:
    【Java学习笔记】java.lang包学习
    winform的md5加密
    地铁线路图的设计与实现
    asp.net的jQuery 表格展开伸缩
    关于批量数据更新的问题(C#高性能)
    JQuery用户名无刷新验证
    Linq分页
    用jQuery写的好的动态显示本机时间的代码
    asp.net防止页面刷新弹出“需要重新发送您以前提交的信息”
    aspx中的html代码调用CS文件中的方法
  • 原文地址:https://www.cnblogs.com/zhaopeining/p/11722503.html
Copyright © 2011-2022 走看看