查詢城市名稱

public class F1 extends Fragment {

    private ViewPager vp;
    private LinearLayout ll;
    private List<String> imUrl;
    private List<View> list;
    private int num=0;
    private int time=0;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            switch (msg.what){
                case 0:
                    vp.setCurrentItem(time);
                    break;
                case  1:
             String str= (String) msg.obj;
                    text_view.setText(str);

                    break;
            }

        }
    };
    private EditText ed_name;
    private TextView text_view;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.f1,container,false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        vp = (ViewPager) getView().findViewById(R.id.vp1);
        ll = (LinearLayout) getView().findViewById(R.id.ly);

        initData();
        vp.setAdapter(new Mydata());
        intiView();
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                list.get(position % imUrl.size()).setBackgroundResource(R.mipmap.btn_radio_on_holo_dark);
                list.get(num % imUrl.size()).setBackgroundResource(R.mipmap.btn_radio_on_disabled_holo_dark);
                  num=position;
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        intiData();

    }

   //無線輪播
    private void intiView() {
        new Thread(){
            @Override
            public void run() {
                super.run();
                while (true){
                    SystemClock.sleep(3000);
                    time++;
                    handler.sendEmptyMessage(0);

                }
            }
        }.start();
    }

    private void initData() {
        imUrl = new ArrayList<>();
        imUrl.add("http://f2.kkmh.com/image/160511/chrrrrs4v.webp-w750.jpg");
        imUrl.add("http://f2.kkmh.com/image/170104/gio7ngxkf.webp-w750.jpg");
        imUrl.add("http://f2.kkmh.com/image/160222/03wkn35ez.webp-w750.jpg");
        list = new ArrayList<>();
        for (int i = 0; i <imUrl.size() ; i++) {
            View view = new View(getActivity());
            view.setLayoutParams(new LinearLayout.LayoutParams(50,50));
            list.add(view);
            if (i==0){
                list.get(i).setBackgroundResource(R.mipmap.btn_radio_on_holo_dark);
            }else {
                list.get(i).setBackgroundResource(R.mipmap.btn_radio_on_disabled_holo_dark);
            }
       ll.addView(list.get(i));
        }


    }
    class  Mydata extends PagerAdapter{

        @Override
        public int getCount() {
            return Integer.MAX_VALUE;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            final ImageView imageView = new ImageView(getActivity());
            new ImageLoder(new ImageLoder.ImageBall() {
                @Override
                public void callBitmap(Bitmap bitmap) {
                    if(bitmap!=null)
                    {
                        imageView.setImageBitmap(bitmap);
                    }

                }
            }).execute(imUrl.get(position % imUrl.size()));
            container.addView(imageView);

            return imageView;
        }
    }

public void  intiData(){
    text_view = (TextView) getView().findViewById(R.id.text_view);
    ed_name = (EditText) getView().findViewById(R.id.ed_name);
    getView().findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case  R.id.button:
                    String name = ed_name.getText().toString().trim();
                    if (!TextUtils.isEmpty(name)){
                        try {
                            getTianQi(name);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }else {
                        Toast.makeText(getActivity(),"城市名不能爲空",Toast.LENGTH_LONG).show();

                    }


                    break;
            }
        }
    });
}
    public void getTianQi(String Name) throws  Exception{
       new Thread(){
           @Override
           public void run() {
               super.run();
               try {
                   String service_url = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx";
                   //namepace
                   String name_space = "http://WebXml.com.cn/";
                   //具體請求的服務
                   String method_name = "getWeather";
                   HttpTransportSE httpTransportSE = new HttpTransportSE(service_url);
                   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                   SoapObject soapObject = new SoapObject(name_space, method_name);
                   soapObject.addProperty("theCityCode","北京");
                   soapObject.addProperty("theUserID","5071be049c5241ad8583050460fc1fac");
                   envelope.bodyOut=soapObject;
                   envelope.dotNet=true;

                   httpTransportSE.call(name_space+method_name,envelope);

                   StringBuffer sb=new StringBuffer();
                   if (envelope.getResponse()!=null){

                       SoapObject result= (SoapObject) envelope.bodyIn;
                       SoapObject su= (SoapObject) result.getProperty("getWeatherResult");

                       sb.append("今日天氣狀況 : "+su.getProperty(4)+"\r\n" +
                               "當前城市 : "+su.getProperty(1));


                       Message message = handler.obtainMessage();
                       message.what=1;
                       message.obj = sb.toString();
                       handler.sendMessage(message);

                   }
               } catch (Exception e) {
                   e.printStackTrace();
               }

           }
       }.start();
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章