您的位置:首页 > 其它

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);

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: