主页面
public class MainActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list);
//在广播动态注册权限
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
NetUtilBroadcastReceiver receiver = new NetUtilBroadcastReceiver();
registerReceiver(receiver, intentFilter);
}
private class NetUtilBroadcastReceiver extends BroadcastReceiver {
//重写
@Override
public void onReceive(Context context, Intent intent) {
//判断网络
boolean net = NetUtil.isNet(context);
if (net) {
new MyAsync().execute();
boolean wifi = NetUtil.isWifi(context);
if (wifi) {
Toast.makeText(context, "目前是wifi状态", Toast.LENGTH_SHORT).show();
} else {
boolean wang = NetUtil.isWang(context);
if (wang) {
Toast.makeText(context, "目前使用的是流量", Toast.LENGTH_SHORT).show();
}
}
} else {
Toast.makeText(context, "还没网!", Toast.LENGTH_SHORT).show();
//弹框到设置网络页面
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("提示");
builder.setMessage("网络");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(Settings.ACTION_WIFI_IP_SETTINGS));
}
});
//取消
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}
}
//网络
private class MyAsync extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
//网址:
try {
URL url = new URL("http://www.xieast.com/api/news/news.php");
HttpURLConnection coonn = (HttpURLConnection) url.openConnection();
coonn.setRequestMethod("GET");
coonn.setReadTimeout(5000);
coonn.setConnectTimeout(5000);
if (coonn.getResponseCode() == HttpURLConnection.HTTP_OK) {
//请求成功
InputStream is = coonn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder builder = new StringBuilder();
String string = "";
while ((string = reader.readLine()) != null) {
builder.append(string);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//解析json串
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("aaa", "onPostExecute: "+s);
Gson gson = new Gson();
Json json = gson.fromJson(s, Json.class);
ArrayList<Data> data = json.getData();
MyAdapter myAdapter = new MyAdapter(MainActivity.this, data);
listView.setAdapter(myAdapter);
}
}
}
}
网络判断
public class NetUtil {
//网络
public static boolean isNet(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null) {
return info.isAvailable();
}
return false;
}
//wifi
public static boolean isWifi(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi != null) {
return true;
}
return false;
}
//流量
public static boolean isWang(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wang = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wang != null) {
return true;
}
return false;
}
}
数据类自拟
适配器
public class MyAdapter extends BaseAdapter {
private Context context;
private List<Data> list;
public MyAdapter(Context context, List<Data> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(context, R.layout.pipi_layout, null);
holder = new ViewHolder();
holder.textView1 = convertView.findViewById(R.id.textView1);
holder.textView2 = convertView.findViewById(R.id.textView2);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView1.setText(list.get(position).getTitle());
holder.textView2.setText(list.get(position).getDate());
return convertView;
}
class ViewHolder {
private TextView textView1, textView2;
}
}