网络请求与Fragment的使用

来源:互联网 发布:七大查找算法 编辑:程序博客网 时间:2024/06/05 11:33
ackage com.ljn.myapplication.Utils;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.ConnectivityManager;import android.net.NetworkInfo;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;/** * Created by HP on 2017/11/4. */public class Utils {    public static String getNetString(String str){        try {            URL url=new URL(str);            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();            int responseCode = urlConnection.getResponseCode();            if (responseCode==200){                InputStream is = urlConnection.getInputStream();                BufferedReader br=new BufferedReader(new InputStreamReader(is));                StringBuilder sb=new StringBuilder();                String line=null;                while ((line=br.readLine())!=null){                    sb.append(line);                }                return sb.toString();            }        } catch (MalformedURLException e) {            e.printStackTrace();        }catch (IOException e) {            e.printStackTrace();        }        return null;    }    public static Bitmap getNetBitmap(String str){        try {            URL url=new URL(str);            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();            int responseCode = urlConnection.getResponseCode();            if (responseCode==200){                InputStream is = urlConnection.getInputStream();                Bitmap bitmap = BitmapFactory.decodeStream(is);                return bitmap;            }        } catch (MalformedURLException e) {            e.printStackTrace();        }catch (IOException e) {            e.printStackTrace();        }        return null;    }    public static String getJsonByHttpClientGet(String jsonUrl) {        //获取httpclient对象        DefaultHttpClient defaultHttpClient = new DefaultHttpClient();        //准备一个get请求//        HttpGet httpGet = new HttpGet(jsonUrl);        HttpPost httpPost = new HttpPost(jsonUrl);        try {            //得到服务器返回的数据;            HttpResponse response = defaultHttpClient.execute(httpPost);            //得到状态码            int statusCode = response.getStatusLine().getStatusCode();            if(statusCode ==200){                //entiry 里面封装的数据;                HttpEntity entity = response.getEntity();                //这个result就是json字符串,剩下的就是解析工作了;                //String result = EntityUtils.toString(entity);                return EntityUtils.toString(entity);            }        } catch (IOException e) {            e.printStackTrace();        }        return null;    }    /**     * 返回值 -1:没有网络  1:WIFI网络   2:net网络     //工具类 判断网络     */    public static int getNetype(Context context) {        int netType = -1;        ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();        if (networkInfo == null) {            return netType;        }        int nType = networkInfo.getType();        if (nType == ConnectivityManager.TYPE_MOBILE) {            netType = 2;        } else if (nType == ConnectivityManager.TYPE_WIFI) {            netType = 1;        }        return netType;    }

}

package com.ljn.myapplication;import android.support.annotation.IdRes;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.RadioGroup;import android.widget.Toast;import com.ljn.myapplication.Fragment.MainFragment1;import com.ljn.myapplication.Fragment.MainFragment2;import com.ljn.myapplication.Fragment.MainFragment3;import com.ljn.myapplication.Fragment.MainFragment4;import com.ljn.myapplication.Utils.Utils;import java.net.JarURLConnection;import java.util.ArrayList;import java.util.List;import static android.R.id.list;public class MainActivity extends FragmentActivity {//private List<Fragment> list=new ArrayList<Fragment>();    private RadioGroup rg;    private FragmentManager manager;    private MainFragment1 fragment1;    private MainFragment2 fragment2;    private MainFragment3 fragment3;    private MainFragment4 fragment4;    @Override    protected void onResume() {        super.onResume();        int netype = Utils.getNetype(MainActivity.this);        if (netype == -1) {            Toast.makeText(this, "当前网络异常,请做联网操作!", Toast.LENGTH_SHORT).show();        } else if (netype == 1) {            Toast.makeText(this, "当前网络正常,正在使用WiFi网络", Toast.LENGTH_SHORT).show();        } else if (netype == 0) {            Toast.makeText(this, "当前网络正常,正在使用运营商网络(3G/4G),请注意流量的使用", Toast.LENGTH_SHORT).show();        }    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rg = findViewById(R.id.main_rg);        //initData();        manager = getSupportFragmentManager();        fragment1 = new MainFragment1();        manager.beginTransaction().add(R.id.main_fl,fragment1).commit();        rg.setOnCheckedChangeListener(new Myoccl());    }    /*private void initData() {        list.add(new MainFragment1());        list.add(new MainFragment2());        list.add(new MainFragment3());        list.add(new MainFragment4());    }*/    private class Myoccl implements RadioGroup.OnCheckedChangeListener {        @Override        public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {            hideFragments();            switch (i){                case R.id.main_rb1:                   // manager.beginTransaction().replace(R.id.main_fl,list.get(0)).commit();                    manager.beginTransaction().show(fragment1).commit();                    break;                case R.id.main_rb2:                   // manager.beginTransaction().replace(R.id.main_fl,list.get(1)).commit();                    if (fragment2==null){                        fragment2 = new MainFragment2();                        manager.beginTransaction().add(R.id.main_fl,fragment2).commit();                    }else{                        manager.beginTransaction().show(fragment2).commit();                    }                    break;                case R.id.main_rb3:                  //  manager.beginTransaction().replace(R.id.main_fl,list.get(2)).commit();                    if (fragment3==null){                        fragment3 = new MainFragment3();                        manager.beginTransaction().add(R.id.main_fl,fragment3).commit();                    }else{                        manager.beginTransaction().show(fragment3).commit();                    }                    break;                case R.id.main_rb4:                   // manager.beginTransaction().replace(R.id.main_fl,list.get(3)).commit();                    if (fragment4==null){                        fragment4 = new MainFragment4();                        manager.beginTransaction().add(R.id.main_fl,fragment4).commit();                    }else{                        manager.beginTransaction().show(fragment4).commit();                    }                    break;            }        }    }    private void hideFragments(){    if (fragment1!=null&&fragment1.isAdded()){        manager.beginTransaction().hide(fragment1).commit();    }    if (fragment2!=null&&fragment2.isAdded()){        manager.beginTransaction().hide(fragment2).commit();    }    if (fragment3!=null&&fragment3.isAdded()){        manager.beginTransaction().hide(fragment3).commit();    }    if (fragment4!=null&&fragment4.isAdded()){        manager.beginTransaction().hide(fragment4).commit();    }        //manager.beginTransaction().commit();    }}

package com.ljn.myapplication.Fragment;import android.graphics.Bitmap;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import com.ljn.myapplication.Bean.TextBean;import com.ljn.myapplication.R;import com.ljn.myapplication.Utils.Utils;import java.util.ArrayList;import java.util.List;/** * Created by HP on 2017/11/4. */public class MainFragment1 extends Fragment {    private ListView lv;    private String NetString="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";    private List<TextBean.NewslistBean> list=new ArrayList<TextBean.NewslistBean>();    private MyAdapter adapter;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.mainfragment1, container, false);        lv = view.findViewById(R.id.child1_lv);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        new MyAsyncTask().execute(NetString);        adapter = new MyAdapter();        lv.setAdapter(adapter);        adapter.notifyDataSetChanged();    }    private class MyAsyncTask extends AsyncTask<String,Void,String>{        @Override        protected String doInBackground(String... strings) {            return Utils.getNetString(strings[0]);        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson=new Gson();            TextBean json = gson.fromJson(s, TextBean.class);            List<TextBean.NewslistBean> newslist = json.getNewslist();            list.addAll(newslist);        }    }    private class MyAdapter extends BaseAdapter {        private ViewHolder vh;        private TextView ctime;        private TextView title;        private TextView description;        private ImageView img;        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            if (view==null){                vh = new MainFragment1.ViewHolder();                view = View.inflate(getActivity(), R.layout.item, null);                view.setTag(vh);            }else{                 vh = (ViewHolder) view.getTag();            }            vh.ctime = view.findViewById(R.id.item_ctime);            vh.title = view.findViewById(R.id.item_title);            vh.description = view.findViewById(R.id.item_description);            vh.img = view.findViewById(R.id.item_img);            vh.ctime.setText(list.get(i).getCtime());            vh.title.setText(list.get(i).getTitle());            vh.description.setText(list.get(i).getDescription());            new MyBitmap(vh.img).execute(list.get(i).getPicUrl());            return view;        }        private class MyBitmap extends AsyncTask<String,Void,Bitmap>{            private ImageView img;            public MyBitmap(ImageView img) {                this.img=img;            }            @Override            protected Bitmap doInBackground(String... strings) {                return Utils.getNetBitmap(strings[0]);            }            @Override            protected void onPostExecute(Bitmap bitmap) {                super.onPostExecute(bitmap);                img.setImageBitmap(bitmap);            }        }    }    class ViewHolder{        TextView ctime;        TextView title;        TextView description;        ImageView img;    }}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 工作累的想哭怎么办 心累迷茫想哭怎么办 白天很累晚上又睡不着怎么办 发型睡觉压乱了怎么办 通宵一夜第二天怎么办 夏天了腿脚还凉怎么办 咖啡色三天了月经还是下不来怎么办 睡觉姿势不对腰疼怎么办 来月经吃了香瓜怎么办 减肥期间晚上有饭局怎么办 减肥期间遇到晚上聚餐怎么办 婴儿脸不向上睡怎么办 睡觉压奶了疼怎么办 堵奶了挤不下来怎么办 孕36周胎儿腿短怎么办 孕晚期胎儿腿短怎么办 孕晚期宝宝腿短怎么办 手劳累过度麻痛怎么办 大人发烧40不退怎么办? 颈椎扯的脑袋疼怎么办 孕妇颈椎痛导致失眠怎么办 做完运动脊椎中间痛怎么办? 阴虛阴虚火旺怎么办 脸一躺下就丑怎么办 身体淤堵的厉害怎么办 怀孕晚期脚肿了怎么办 宝宝感冒咳嗽流鼻涕流泪怎么办 孕晚期睡觉习惯面朝右怎么办 鼻涕一直不停的流怎么办 宝宝一直流清鼻涕怎么办 感冒了眼睛酸胀流泪怎么办 五个月宝宝感冒流鼻涕怎么办 六个月宝宝感冒流鼻涕怎么办 一岁宝宝感冒咳嗽流鼻涕怎么办 七个月宝宝感冒流鼻涕咳嗽怎么办 孩子握笔姿势不正确怎么办 走久了脚底板痛怎么办 不会给宝宝拍嗝怎么办 打了肉毒素淤青怎么办 新生儿一吃母乳就睡觉怎么办 10岁半宝宝缺钾怎么办