Android APP —— 百度地图使用手记(三)
原创
©著作权归作者所有:来自51CTO博客作者mb6304a73bed12a的原创作品,请联系作者获取转载授权,否则将追究法律责任
编写静态的Model——Point
—— App 的数据来源
1. MVC的设计思想
MVC是一种复合的设计模式,其中,M——Model(模型)、V——View(视图)、C——Controller(控制器),其综合了策略模式、观察者模式、组合模式等等。Model是系统数据的所有者和管理者,View负责数据的展示,Controller则负责读取用户输入并通知Model改变数据的状态。
统一资源标识符)唯一表示一个资源,这样Android APP就可以通过不同的URI访问不同的数据资源。
在本Demo中并没有服务器端相应的程序,因此需要在APP中自己编写静态的数据。
2. 编写Point
Point 的角色类似于MVC中的Model,Activity类似于Controller,而layout目录下的xml布局文件则可以看做View。
其UML类图如下:
新建一个model目录,并在model目录下新建java 类:Point
在Point类中添加如下代码:
<span style="font-size:14px;">package com.example.a10405.tmp.model;
import com.example.a10405.tmp.R;
import java.util.ArrayList;
import java.util.List;
/**
* Created by 10405 on 2016/6/27.
*/
public class Point {
private int id;//id
private String name;
private double latitude; // 精度
private double longitude; //纬度
private int[] imgList;//图片列表
public static List<Point> pointList = new ArrayList<>();
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getLatitude() {
return latitude;
}
public double getLongitude() {
return longitude;
}
public Point(int id,double lat, double lng, String name,
int[] imgList){
super();
this.id = id;
this.latitude = lat;
this.longitude = lng;
}
static {
pointList.add(new Point(1, 41.774338,123.426406,"东北大学",
new int[] {R.mipmap.i1_1, R.mipmap.i1_2,
R.mipmap.i1_3, R.mipmap.i1_4,}
));
pointList.add(new Point(3,41.805405,123.464656, "沈阳中街",
new int[] {R.mipmap.i2_1, R.mipmap.i2_2,
R.mipmap.i2_3, R.mipmap.i2_4}
));
}
}</span><span style="font-size:18px;">
</span>
Point 类中有4个私有成员变量和一个公有成员变量构成,并有一个静态(static)语句块,无需实例化就可以调用static程序块中的方法。
循环输出point的id和name,如下:
<span style="font-size:14px;">package com.example.a10405.tmp.activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.example.a10405.tmp.R;
import com.example.a10405.tmp.model.Point;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(Point point : Point.pointList) {
System.out.println("asdf " + point.getId() + " " + point.getName());
}
}
}</span><span style="font-size:18px;">
</span>
最后控制台的输出情况如下图所示,可见MainActivity成功调用了Point中的方法。
下一部分,将记录如何在百度地图上显示这些point。