public class MainActivity extends AppCompatActivity {
private String url = "http://v.juhe.cn/toutiao/index?type=top&key=2f41498b35e69877fc56dc96776e5d1f";
private String url1 = "https://www.zhaoapi.cn/product/searchProducts?keywords=%E7%AC%94%E8%AE%B0%E6%9C%AC&page=1";
private ListView listView;
private static final String TAG = "&MainActivity----";
private MyHandler myHandler = new MyHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化界面
initViews();
//获取网络数据
initDatas();
}
private void initDatas() {
new Thread() {
@Override
public void run() {
try {
//网络请求之前,判断是有有网
if (hasNet()) {
URL u = new URL(url);
HttpURLConnection con = (HttpURLConnection) u.openConnection();
con.setConnectTimeout(5000);
if (con.getResponseCode() == 200) {
InputStream inputStream = con.getInputStream();
String json = method(inputStream);
Log.d(TAG, "run: ----" + json);
//发送
Message message = myHandler.obtainMessage();
message.what = 0;
message.obj = json;
myHandler.sendMessage(message);
}
} else {
//
Log.d(TAG, "没网");
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("是否有网");
builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
private void initViews() {
listView = findViewById(R.id.main_listview);
}
public String method(InputStream inputStream) throws IOException {
int len = 0;
byte[] butter = new byte[1024];
StringBuffer stringBuffer = new StringBuffer();
while ((len = inputStream.read(butter)) != -1) {
String s = new String(butter, 0, len);
stringBuffer.append(s);
}
Log.d(TAG, "method: " + stringBuffer.toString());
return stringBuffer.toString();
}
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
//成功
String json = (String) msg.obj;
Gson gson = new Gson();
NewsBean newsBean = gson.fromJson(json, NewsBean.class);
List<NewsBean.ResultBean.DataBean> list = newsBean.getResult().getData();
MyAdapter myAdapter = new MyAdapter(MainActivity.this, list);
listView.setAdapter(myAdapter);
break;
}
}
}
//判断当前网络状态
public boolean hasNet() {
//获取网络管理者
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();//获取可用的网络信息
if (info == null) {
return false;
}
return true;
}
}
private String url = "http://v.juhe.cn/toutiao/index?type=top&key=2f41498b35e69877fc56dc96776e5d1f";
private String url1 = "https://www.zhaoapi.cn/product/searchProducts?keywords=%E7%AC%94%E8%AE%B0%E6%9C%AC&page=1";
private ListView listView;
private static final String TAG = "&MainActivity----";
private MyHandler myHandler = new MyHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化界面
initViews();
//获取网络数据
initDatas();
}
private void initDatas() {
new Thread() {
@Override
public void run() {
try {
//网络请求之前,判断是有有网
if (hasNet()) {
URL u = new URL(url);
HttpURLConnection con = (HttpURLConnection) u.openConnection();
con.setConnectTimeout(5000);
if (con.getResponseCode() == 200) {
InputStream inputStream = con.getInputStream();
String json = method(inputStream);
Log.d(TAG, "run: ----" + json);
//发送
Message message = myHandler.obtainMessage();
message.what = 0;
message.obj = json;
myHandler.sendMessage(message);
}
} else {
//
Log.d(TAG, "没网");
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("是否有网");
builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
private void initViews() {
listView = findViewById(R.id.main_listview);
}
public String method(InputStream inputStream) throws IOException {
int len = 0;
byte[] butter = new byte[1024];
StringBuffer stringBuffer = new StringBuffer();
while ((len = inputStream.read(butter)) != -1) {
String s = new String(butter, 0, len);
stringBuffer.append(s);
}
Log.d(TAG, "method: " + stringBuffer.toString());
return stringBuffer.toString();
}
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
//成功
String json = (String) msg.obj;
Gson gson = new Gson();
NewsBean newsBean = gson.fromJson(json, NewsBean.class);
List<NewsBean.ResultBean.DataBean> list = newsBean.getResult().getData();
MyAdapter myAdapter = new MyAdapter(MainActivity.this, list);
listView.setAdapter(myAdapter);
break;
}
}
}
//判断当前网络状态
public boolean hasNet() {
//获取网络管理者
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();//获取可用的网络信息
if (info == null) {
return false;
}
return true;
}
}