进度条和学习过程可视化:避免半途而废
阅读学习教材《Java和Android开发学习指南(第二版)(Java for
Android.2nd)》第29、30、31、32章,,有问题「课程答疑小组)」提问,24小时内回复,鼓励解答别人问题,提问前请阅读「如何提问」。
要在课程组织中建立学习项目,作业博客中要有statistics.sh脚本运行结果的截图
参考示例 点评结对搭档的博客和代码
教材深入学习关注豆列「《Java程序设计和Android开发》课程」。
在本周日晚12:00前发学习博客(标题:学号 2016-2017-2 《移动平台应用开发实践》第五周学习总结),重点是遇到的问题和解决方案。不按时交作业会扣分。
教材学习内容总结
第29章 操作栏
- 1.操作栏是一个矩形窗口区域,包含了应用程序图标,应用程序名称以及其他的导航按钮。
getsupportActionBar().hide().
getsupportActionBar().show().
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main,menu);
return true;//这里指的是设置按钮
}
- 2.添加操作项
switch(item.getItemId())
case R.id.action_1:
//do something
item可以拥有如下的元素:
android:id.唯一的一个标识符。,引用程序中的操作项。
android:orderInCategory。项的顺序编号。编号较小的项将会出现在编号较大的项的前面。
android:icon。如果操作项显示为一个操作按钮的话,这是操作箱的图标
android:title。操作标签
android:showAsAction。这个值可以是如下值的一个或多个的组合:ifRoom、never、withText、always和callapseActionView。
- 3.添加下拉式导航。一个下拉式的列表可以用作一种导航模式。
- 4.回退一步。可以在一个活动的操作栏中设置应用程序图标和活动标签,以便按下该图标时,应用程序能够向上回退一个层级。
第30章
- 1.android中有3种类型的菜单:1.选项菜单。2.上下文菜单。3.弹出式菜单。
- 2.菜单文件:group元素表示一个菜单分组。item元素表示一个菜单项。
- 3.OptionsMenuDemo应用程序是一个简单的应用程序,它在操作栏中使用一个选项菜单。
- 4.上下文菜单:contextMenuDemo应用程序展现了如何在应用程序中使用上下文菜单,该应用程序的主活动使用了一个图像按钮,可以长按该按钮以显示一个上下文菜单。
- 5.弹出式菜单:弹出式和一个视图相关联,每次该视图中发生一个事件的时候,就会显示这个菜单。
第31章
- 1.ListView是一个可以显示滚动的列表项的一个视图,列表项可能来自于一个列表适配器或一个数组适配器。
- 2.创建一个ListAdapter:ListAdapter的具体的实现之一是ArrayAdapter类。
- 3.使用一个Listview:
- 4.扩展ListActivity并编写一个定制的适配器。:如果你的活动个只有一个LISTVIEW组件,你应该考虑扩展ListActivity类而不是Activity。
- 5.样式化选取的项:用户能够清晰的看到lISTVIEW中当前选择的项,这常常是想要的结果。
第32章GridView
- 1.android.widget.GridView类是一个创建GridView的模板。
- 2.使用GridView:该程序使用一个GridView来填充整个显示区。
教材学习中的问题和解决过程
实验一
任务:
//定义一个数组
int arr[] = {1,2,3,4,5,6,7,8};
//打印原始数组的值
for(int i:arr){
System.out.print(i + " ");
}
System.out.println();
// 添加代码删除上面数组中的5
...
//打印出 1 2 3 4 6 7 8 0
for(int i:arr){
System.out.print(i + " ");
}
System.out.println();
// 添加代码再在4后面5
...
//打印出 1 2 3 4 5 6 7 8
for(int i:arr){
System.out.print(i + " ");
}
System.out.println();
public class hello {
public static void main(String[] args )
{
int[] a =new int[]{1,2,3,4,5};
for(int i=0;i<a.length;i++)
System.out.print(a[i]);
System.out.println("");
for(int j=a.length-1;j>=0;j--)
System.out.print(a[j]);
*/
int arr[] = {1,2,3,4,5,6,7,8};
//打印原始数组的值
for(int i:arr){
System.out.print(i + " ");
}
System.out.println();
// 添加代码删除上面数组中的5
for(int i=4;i<arr.length-1;i++ )
arr[i] = arr[i+1];
arr[7] = 0;
//打印出 1 2 3 4 6 7 8 0
for(int i:arr){
System.out.print(i + " ");
}
System.out.println();
// 添加代码再在4后面5
for(int i=arr.length-1;i>4;i-- )
arr[i] = arr[i-1];
arr[4] = 5;
//打印出 1 2 3 4 5 6 7 8
for(int i:arr){
System.out.print(i + " ");
}
System.out.println();
}
}
实验二
实验三
实验三 Java面向对象程序设计()
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
1: 让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
实验四
任务:以TDD的方式开发一个复数类Complex,要求如下:
// 定义属性并生成getter,setter
double RealPart;
double ImagePart;
// 定义构造函数
public Complex()
public Complex(double R,double I)//Override Object
public boolean equals(Object obj)
public String toString()// 定义公有方法:加减乘除
Complex ComplexAdd(Complex a)
Complex ComplexSub(Complex a)
Complex ComplexMulti(Complex a)
Complex ComplexDiv(Complex a)
实验实现代码:
public class Complex {
// 定义属性并生成getter,setter
double RealPart;
double ImagePart;
// 定义构造函数
public Complex(){
this.RealPart=1;
this.ImagePart=1;
};
public Complex(double R,double I){
this.RealPart=R;
this.ImagePart=I;
System.out.println(R+"+"+I+"i");
};
public void setRealPart(double a)
{
this.RealPart=a;
}
public double getRealPart()
{
return this.RealPart;
}
public void setImagePart(double a)
{
this.RealPart=a;
}
public double getImagePart()
{
return this.ImagePart;
}
//Override Object
public boolean equals(Object obj)
{
if(this.toString().equals(obj.toString()))
{
return true;
}
else
{
return false;
}
}
public String toString()
{
return this.RealPart+"+"+this.ImagePart+"i\n";
}
// 定义公有方法:加减乘除
Complex ComplexAdd(Complex a)
{
Complex c = a;
c.RealPart +=this.RealPart;
c.ImagePart+=this.ImagePart;
return c;
}
Complex ComplexSub(Complex a)
{
Complex c= a;
c.RealPart -=this.RealPart;
c.ImagePart-=this.ImagePart;
return c;
}
Complex ComplexMulti(Complex a)
{
Complex c= a;
c.RealPart = this.RealPart* c.RealPart-this.ImagePart*c.ImagePart;
c.ImagePart=this.ImagePart*c.RealPart+this.RealPart*c.ImagePart;
return c;
}
Complex ComplexDiv(Complex a)
{
Complex c= a;
c.RealPart = this.RealPart* c.RealPart-this.ImagePart*c.ImagePart;
c.ImagePart=this.ImagePart*c.RealPart+this.RealPart*c.ImagePart;
return c;
}
}