进度条和学习过程可视化:避免半途而废
阅读学习教材《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();
}
}

应用开发的总体架构_System

实验二

应用开发的总体架构_设计模式_02

实验三

实验三 Java面向对象程序设计

对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式

1: 让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

应用开发的总体架构_设计模式_03

实验四

任务:以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;
    }
}

应用开发的总体架构_java_04

实验五

应用开发的总体架构_移动开发_05

应用开发的总体架构_设计模式_06

实验六 使用starUML建模(这里选用猫和狗继承动物的例子)

应用开发的总体架构_System_07