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
这个布局文件,原布局文件为:
这时我们在
android:text="Hello World!"
这一行添加自己的学号
android:text="Hello World!20155229"
学习Android Stuidio调试应用程序
- 使用日志消息调试应用程序,选择
Tools
→Android
→Android Device Monitor
会出现LogCat
的信息。
- 设置断点 添加一行断点,选择
Run
→Toggle Line Breakpoint
,然后选择Run
→Debug 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
刚开始运行遇到的问题是:
然后对照已经做出来的同学的代码进行修改,最后成功的解决了问题
任务三
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
- menu_main
任务四
布局测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:
- 构建项目,运行教材相关代码
修改布局让P290页的界面与教材不同
布局文件
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
- menu_main
实验体会
本次实验不同于之前的,运用AndroidStudio进行应用开发。不管是在安装中,还是做题中都遇到了问题,而且软件运行起来特别慢,特别是再使用虚拟机进行git代码上传的时候,电脑的运行内存能够到94%。从题目来看,五个实验任务都比较基础,在教材的帮助下能够将五个实验完成。
我的PSP时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 20分钟 | 12.5 % |
设计 | 30分钟 | 18.75% |
代码实现 | 80分钟 | 50.0% |
测试 | 20分钟 | 12.5% |
分析总结 | 10分钟 | 6.25% |