y

来源:互联网 发布:网狐数据库配置生成器 编辑:程序博客网 时间:2024/04/23 19:14
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);

    }

}

0 0
原创粉丝点击