zoukankan      html  css  js  c++  java
  • 20155229--Java实验四《Android开发基础》

    20155229 Java实验四《Android开发基础》

    实验内容:

    任务一:

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

    • 安装 Android Stuidio
    • 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号
    • 学习Android Stuidio调试应用程序
    修改res目录中的内容,显示自己的学号:

    在res中,存在activity_main.xml这个布局文件,原布局文件为:

    <?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.y50c.helloworld.MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    </android.support.constraint.ConstraintLayout>
    
    

    这时我们在

    android:text="Hello World!"

    这一行添加自己的学号

    android:text="Hello World!20155229"

    学习Android Stuidio调试应用程序
    • 使用日志消息调试应用程序,选择ToolsAndroidAndroid Device Monitor会出现LogCat的信息。

    • 设置断点
      添加一行断点,选择RunToggle Line Breakpoint,然后选择RunDebug app进行调试应用程序。

    任务二

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

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

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

    • 教材中MainActivity的代码为(输入了自己学号的信息):

    
    package com.example.y50c.helloworld;
    
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    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", "20155229fyh");
            startActivity(intent);
        return true; }
    }
    
    

    学习了SecondActivity的代码及布局文件,创建ThirdActivity的代码及布局文件为:

    • ThirdActivity:
    package com.example.y50c.helloworld;
    
    /**
     * Created by Y50C on 2017/5/18.
     */
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.TextView;
    public class ThirdActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_third);
            Intent intent = getIntent();
            String message = intent.getStringExtra("message");
            ((TextView) findViewById(R.id.textView1)).setText(message);
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.menu_third, menu);
            return true;
        }
    }
    
    
    • activity_third.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="10dp"
        tools:context=".ThirdActivity" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    
    </LinerLayout>
    
    

    刚开始运行遇到的问题是:

    然后对照已经做出来的同学的代码进行修改,最后成功的解决了问题

    任务三

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

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

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

    • Toast是一个小的弹出对话框,用于显示一条消息作为给用户的反馈

    • MainActivity代码:

    
    package com.example.y50c.fyh20155229;
    
    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,"20155229fyh", 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;
        }
    
    
    
    • 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="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="10dp"
        tools:context=".MainActivity" >
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="first_screen" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="20155229fyh"
            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>
    
    • menu_main
    
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    
    
        xmlns:app="http://schemas.android.com/apk/res-auto">
        xmlns:tools="http://schemas.android.com/tools"
        tools:context="com.example.testmenu_xml.MainActivity" >
        <item android:id="@+id/id_action_add"
    
            android:title="增加"
            android:icon="@mipmap/ic_launcher"
            >
    
        </item>
        <item android:id="@+id/id_action_delete"
    
            android:title="删除"
            android:icon="@mipmap/ic_launcher"
            >
    
        </item>
    </menu>
    

    任务四

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

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

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

    • 布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#00ffff"
            android:text="20155229"/>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:textColor="#"
            android:gravity="right"
            android:text="fyh"/>
    </FrameLayout>
    
    

    android:textColor可以修改输出的颜色

    • eg.

    android:textSize可以修改输出的大小

    任务五

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

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

    • MainActivity

    package com.example.y50c.renwusi;
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.widget.AnalogClock;
    
    public class MainActivity extends Activity {
        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++]);
        }
    }
    
    
    • activity_main
    <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="20dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        tools:context=".MainActivity">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="20155229fyh"></TextView>
    
        <AnalogClock
            android:id="@+id/analogClock1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="90dp"
            android:onClick="changeColor" />
    </RelativeLayout>
    
    
    • menu_main
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        xmlns:app="http://schemas.android.com/apk/res-auto">
        xmlns:tools="http://schemas.android.com/tools"
        tools:context="com.example.testmenu_xml.MainActivity" >
        <item android:id="@+id/id_action_add"
    
            android:title="增加"
            android:icon="@mipmap/ic_launcher"
            >
    
        </item>
        <item android:id="@+id/id_action_delete"
    
            android:title="删除"
            android:icon="@mipmap/ic_launcher"
            >
    
        </item>
    </menu>
    
    

    实验体会

    本次实验不同于之前的,运用AndroidStudio进行应用开发。不管是在安装中,还是做题中都遇到了问题,而且软件运行起来特别慢,特别是再使用虚拟机进行git代码上传的时候,电脑的运行内存能够到94%。从题目来看,五个实验任务都比较基础,在教材的帮助下能够将五个实验完成。

    我的PSP时间

    步骤 耗时 百分比
    需求分析 20分钟 12.5 %
    设计 30分钟 18.75%
    代码实现 80分钟 50.0%
    测试 20分钟 12.5%
    分析总结 10分钟 6.25%

    参考资料

  • 相关阅读:
    Atitit 趋势管理之道 attilax著
    Atitit 循环处理的新特性 for...else...
    Atitit 2017年的技术趋势与未来的大技术趋势
    atitit 用什么样的维度看问题.docx 如何了解 看待xxx
    atitit prj mnrs 项目中的几种经理角色.docx
    Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
    Atitit 工具选型的因素与方法 attilax总结
    Atitit.团队文化建设影响组织的的一些原理 法则 定理 效应 p826.v4
    Atiitt 管理方面的误区总结 attilax总结
    Atitit 未来趋势把控的书籍 attilax总结 v3
  • 原文地址:https://www.cnblogs.com/fyhtvxq/p/6884665.html
Copyright © 2011-2022 走看看