android_判断网络/添加Fragment显示listview

权限:

 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
   
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>

 

 

 

 

布局控件:

activity_main:  写fragment时  除了要写name外 还要写id 不然会报错因为id是fragment唯一标识

 

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context="com.bwei.day_14rikao.MainActivity">

    <fragment
        android:id="@+id/ff"
        android:name="com.bwei.day_14rikao.BeaseFragmrnt"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></fragment>

</android.support.constraint.ConstraintLayout>

fragment:

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/lv"/>
</LinearLayout>

MainActivity:
Fragment:
 import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.AsyncTask; import android.os.Bundle; import android.provider.Settings; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; 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.util.ArrayList; import java.util.List; /**  * author:Created by on 2017/9/14.  */  public class BeaseFragmrnt extends Fragment { private List<String> lists; private View view; private ListView lv; private StringBuilder builder; private List<List<String>> result; ArrayList<String> list = new ArrayList<>(); @Nullable  @Override  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment, container, false); return view; } @Override  public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //初始化控件  lv = (ListView) view.findViewById(R.id.lv); //获取判断网络返回值  boolean b = isNetworkConnected(getActivity()); Log.e("gsyfdgvsydhfbsjh", b + ""); //判断是否连接网络  if (b) { //如果返回true则加载数据  new MAsticy().execute("https://suggest.taobao.com/sug?code=utf-8&q=%E6%98%BE%E7%A4%BA%E5%99%A8"); } else { //否则调用此方法进行下一步操作  checkNetwork(getActivity()); } } public class MAsticy extends AsyncTask<String, Void, String> { @Override  protected String doInBackground(String... strings) { try { //获取路径  URL url = new URL(strings[0]); //获取 HttpURLConnection对象  HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //获取请求码  int responseCode = urlConnection.getResponseCode(); //判断请求码  if (responseCode == 200) { //将路径转换字节流获取  InputStream inputStream = urlConnection.getInputStream(); //使用bufferReader读取  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); //拼接字符串  builder = new StringBuilder(); //定义变量  String str = ""; //循环读取  while ((str = bufferedReader.readLine()) != null) { //拼接  builder.append(str); } } //返回  return builder.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override  protected void onPreExecute() { super.onPreExecute(); } @Override  protected void onPostExecute(String s) { //创建gson对象  Gson gson = new Gson(); //解析gson串  GsonBean gsonBean = gson.fromJson(s, GsonBean.class); //获取数据  result = gsonBean.getResult(); //遍历集合  for (int i = 0; i < result.size(); i++) { lists = result.get(i); //添加到新集合  list.addAll(lists); } //设置适配器  lv.setAdapter(new MAdapter()); super.onPostExecute(s); } @Override  protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } private class MAdapter extends BaseAdapter { @Override  public int getCount() { return list.size(); } @Override  public Object getItem(int i) { return list.get(i); } @Override  public long getItemId(int i) { return i; } @Override  public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; String s = list.get(i); if (view == null) { view = View.inflate(getActivity(), android.R.layout.simple_list_item_1, null); holder = new ViewHolder(); holder.text1 = (TextView) view.findViewById(android.R.id.text1); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } holder.text1.setText(s); return view; } class ViewHolder { TextView text1; } } //  //创建网络请求方法  public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable(); } } return false; } /// // 如果没有网络,则弹出网络设置对话框  public void checkNetwork(final Activity activity) { if (!isNetworkConnected(activity)) { TextView msg = new TextView(activity); msg.setText("当前没有可以使用的网络,请设置网络!"); AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setTitle("网络状态提示") .setView(msg) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // 跳转到设置界面  activity.startActivityForResult(new Intent( Settings.ACTION_WIRELESS_SETTINGS), 0); } }).setNegativeButton("取消", null).create().show(); } return ; } } 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值