public class MainActivity extends AppCompatActivity {
private ListView mLVContents;
private DemoAdapter mAdapter;
private final int UPDATE_UI = 1;
private Handler mHandler = new Handler(){
@Override public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_UI:
mAdapter.setmDatas((List<List<String>>) msg.obj);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLVContents = findViewById(R.id.lv_contents);
mAdapter = new DemoAdapter(this);
mLVContents.setAdapter(mAdapter);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//网络判断
if(!NetUtil.hasNetwork(MainActivity.this)) {
showNotNetworkDialog();
return;
}
//查询数据
new Thread(new Runnable() {
@Override
public void run() {
initDate();
}
}).start();
}
});
mLVContents.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView <?> adapterView, View view, int i, long l) {
List <String> data = mAdapter.getItem(i);
Toast.makeText(MainActivity.this,data.get(0)+":"+data.get(1),Toast.LENGTH_LONG).show();
}
});
}
private void showNotNetworkDialog() {
new AlertDialog.Builder(this)
.setTitle("没有可用网络")
.setMessage("当前网络不可用,是否去设置")
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
Toast.makeText(MainActivity.this, "去设置", Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).show();
}
String urlStr = "https://suggest.taobao.com/sug?code=utf-8&q=%E6%89%8B%E6%9C%BA";
private void initDate() {
try {
URL url = new URL(urlStr);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
// 请求方法 超时
int responseCode = urlConnection.getResponseCode();
if(responseCode == 200) {
String result = stream2String(urlConnection.getInputStream());
Bean bean = new Gson().fromJson(result, Bean.class);
mHandler.sendMessage(mHandler.obtainMessage(UPDATE_UI, bean.getResult()));
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private String stream2String(InputStream inputStream) throws IOException {
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
for (String tmp = br.readLine(); tmp != null; tmp = br.readLine()){
sb.append(tmp);
}
return sb.toString();
}
}