y
2016-06-01 20:28
176 查看
public class MainActivity extends Activity {
public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
private TextView tv_city_name;
private ListView lv_city;
private ArrayList<String> list_column;
private String[] colunms = new String[] { "北京", "上海", "广州", "深圳", "成都",
"杭州", "天津", "郑州", "苏州", "浙江", "石家庄" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
// 找控件
init();
mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类
mLocationClient.registerLocationListener(myListener); // 注册监听函数
// 设置参数
initLocation();
// 开始定位
mLocationClient.start();
// 为找到的控件设置数据
setData();
// 为lv设置适配器
lv_city.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_expandable_list_item_1, list_column));
// 点击定位到的城市,跳转到房源列表
tv_city_name.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,
InfoActivity.class);
startActivity(intent);
}
});
}
private void setData() {
// TODO Auto-generated method stub
// 创建列表
list_column = new ArrayList<String>();
for (int i = 0; i < colunms.length; i++) {
list_column.add(colunms[i]);
}
}
private void init() {
// TODO Auto-generated method stub
tv_city_name = (TextView) findViewById(R.id.tv_city_name);
lv_city = (ListView) findViewById(R.id.lv_city);
}
private void initLocation() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);// 可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd09ll");// 可选,默认gcj02,设置返回的定位结果坐标系
int span = 1000;
option.setScanSpan(span);// 可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);// 可选,设置是否需要地址信息,默认不需要
option.setOpenGps(true);// 可选,默认false,设置是否使用gps
option.setLocationNotify(true);// 可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
option.setIsNeedLocationDescribe(true);// 可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);// 可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
option.setIgnoreKillProcess(false);// 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
option.SetIgnoreCacheException(false);// 可选,默认false,设置是否收集CRASH信息,默认收集
option.setEnableSimulateGps(false);// 可选,默认false,设置是否需要过滤gps仿真结果,默认需要
mLocationClient.setLocOption(option);
}
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// 获取定位的城市
String city = location.getCity();
tv_city_name.setText(city);
}
}
}
public class InfoActivity extends Activity {
private PullToRefreshListView lv;
private String URL = "http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&qtime=20160411091603&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0";
private ArrayList<Myrows> dlist;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
List<Myrows> list = (List<Myrows>) msg.obj;
// 为listview设置适配器
lv.setAdapter(new MyAdapter(InfoActivity.this, list));
// 停止刷新
lv.onRefreshComplete();
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);
// 找控件
init();
// 创建集合对象
dlist = new ArrayList<Myrows>();
// 请求网络数据
reqData(0);
lv.setOnRefreshListener(new OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(
PullToRefreshBase<ListView> refreshView) {
Log.e("TAG", "onPullDownToRefresh");
// 这里写下拉刷新的任务
// 重新请求数据
reqData(0);
}
@Override
public void onPullUpToRefresh(
PullToRefreshBase<ListView> refreshView) {
Log.e("TAG", "onPullUpToRefresh");
// 这里写上拉加载更多的任务
reqData(1);
}
});
}
private void reqData(final int type) {
// TODO Auto-generated method stub
new Thread() {
public void run() {
// 请求网络数据
String webData = MyUtils.getWebData(URL);
// 进行解析数据
Gson g = new Gson();
SuperClass sc = g.fromJson(webData, SuperClass.class);
List<Myrows> list_rows = sc.getResult().getRows();
if (type == 0) {
dlist.addAll(0, list_rows);
} else {
dlist.addAll(list_rows);
}
// 将数据发送给handler
handler.sendMessage(handler.obtainMessage(1, dlist));
};
}.start();
}
private void init() {
lv = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
}
}
public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
private TextView tv_city_name;
private ListView lv_city;
private ArrayList<String> list_column;
private String[] colunms = new String[] { "北京", "上海", "广州", "深圳", "成都",
"杭州", "天津", "郑州", "苏州", "浙江", "石家庄" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
// 找控件
init();
mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类
mLocationClient.registerLocationListener(myListener); // 注册监听函数
// 设置参数
initLocation();
// 开始定位
mLocationClient.start();
// 为找到的控件设置数据
setData();
// 为lv设置适配器
lv_city.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_expandable_list_item_1, list_column));
// 点击定位到的城市,跳转到房源列表
tv_city_name.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,
InfoActivity.class);
startActivity(intent);
}
});
}
private void setData() {
// TODO Auto-generated method stub
// 创建列表
list_column = new ArrayList<String>();
for (int i = 0; i < colunms.length; i++) {
list_column.add(colunms[i]);
}
}
private void init() {
// TODO Auto-generated method stub
tv_city_name = (TextView) findViewById(R.id.tv_city_name);
lv_city = (ListView) findViewById(R.id.lv_city);
}
private void initLocation() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);// 可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd09ll");// 可选,默认gcj02,设置返回的定位结果坐标系
int span = 1000;
option.setScanSpan(span);// 可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);// 可选,设置是否需要地址信息,默认不需要
option.setOpenGps(true);// 可选,默认false,设置是否使用gps
option.setLocationNotify(true);// 可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
option.setIsNeedLocationDescribe(true);// 可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);// 可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
option.setIgnoreKillProcess(false);// 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
option.SetIgnoreCacheException(false);// 可选,默认false,设置是否收集CRASH信息,默认收集
option.setEnableSimulateGps(false);// 可选,默认false,设置是否需要过滤gps仿真结果,默认需要
mLocationClient.setLocOption(option);
}
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// 获取定位的城市
String city = location.getCity();
tv_city_name.setText(city);
}
}
}
public class InfoActivity extends Activity {
private PullToRefreshListView lv;
private String URL = "http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&qtime=20160411091603&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0";
private ArrayList<Myrows> dlist;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
List<Myrows> list = (List<Myrows>) msg.obj;
// 为listview设置适配器
lv.setAdapter(new MyAdapter(InfoActivity.this, list));
// 停止刷新
lv.onRefreshComplete();
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);
// 找控件
init();
// 创建集合对象
dlist = new ArrayList<Myrows>();
// 请求网络数据
reqData(0);
lv.setOnRefreshListener(new OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(
PullToRefreshBase<ListView> refreshView) {
Log.e("TAG", "onPullDownToRefresh");
// 这里写下拉刷新的任务
// 重新请求数据
reqData(0);
}
@Override
public void onPullUpToRefresh(
PullToRefreshBase<ListView> refreshView) {
Log.e("TAG", "onPullUpToRefresh");
// 这里写上拉加载更多的任务
reqData(1);
}
});
}
private void reqData(final int type) {
// TODO Auto-generated method stub
new Thread() {
public void run() {
// 请求网络数据
String webData = MyUtils.getWebData(URL);
// 进行解析数据
Gson g = new Gson();
SuperClass sc = g.fromJson(webData, SuperClass.class);
List<Myrows> list_rows = sc.getResult().getRows();
if (type == 0) {
dlist.addAll(0, list_rows);
} else {
dlist.addAll(list_rows);
}
// 将数据发送给handler
handler.sendMessage(handler.obtainMessage(1, dlist));
};
}.start();
}
private void init() {
lv = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
}
}
相关文章推荐
- [iOS] 判断tableView向上或向下滑动
- android activity四种加载模式
- 站立会议04(第二期)
- unity 协程
- Error “You must not call setTag() on a view Glide is targeting” when use Glide
- Linux常用命令
- gulp详细入门教程
- 用Apache Hadoop和Apache Solr处理和索引医学图像
- LaTex表格用法
- MySQL索引原理及慢查询优化
- 图表框架HelloCharts(1)线形图
- 一点一点学写Makefile(2)-自动搜所当前目录下的所有源文件
- Could not generate DH keypair(httpclient)
- C#之三十九 抽象工厂模式
- 前端构建工具gulpjs的使用介绍及技巧
- Bootstrap基础---网格系统
- C#之三十九 抽象工厂模式
- C#之三十九 抽象工厂模式
- 高并发java
- mysql常用命令