mainActivity: public class MainActivity extends AppCompatActivity { public static final String TOP_URL = "https://www.toutiao.com/hot_words/"; public static final String NEW_URL = "http://www.xieast.com/api/travel.php"; public static final int FLAG1 = 123; public static final int FLAG2 = 124; private TextView text_view; private ListView list_view; private List<String> tops; private int index = 0; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case FLAG1: String result = (String) msg.obj; Gson gson = new Gson(); Type type = new TypeToken<List<String>>(){}.getType(); tops = gson.fromJson(result,type); if (tops != null && tops.size() >0){ text_view.setText(tops.get(0)); handler.sendEmptyMessageDelayed(FLAG2,2000); } break; case FLAG2: if (index < tops.size() -1 ){ index++; }else { index = 0; } text_view.setText(tops.get(index)); break; } } }; private List<News.NewslistBean> list; private NewsAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 text_view = findViewById(R.id.text_view); list_view = findViewById(R.id.list_view); new Thread(new Runnable() { @Override public void run() { String result = HttpUtils.getFromHttpUrlConnection(TOP_URL); Message msg = Message.obtain(); msg.what = FLAG1; msg.obj = result; handler.sendMessage(msg); } }).start(); list = new ArrayList<>(); adapter = new NewsAdapter(list,this); list_view.setAdapter(adapter); new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... strings) { String result = HttpUtils.getFromHttpClient(strings[0]); return result; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (!TextUtils.isEmpty(s)){ Gson gson = new Gson(); News news = gson.fromJson(s, News.class); List<News.NewslistBean> newslist = news.getNewslist(); if (newslist != null){ list.clear(); list.addAll(newslist); adapter.notifyDataSetChanged(); }} } }.execute(NEW_URL); } @Override protected void onDestroy() { super.onDestroy(); handler.removeCallbacksAndMessages(null); } }
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
get请求 public class HttpUtils { /** * httpurlconn * @param urlString * @return */ public static String getFromHttpUrlConnection(String urlString){ String result = ""; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(3000); connection.setUseCaches(false); connection.setDoOutput(false); connection.setDoInput(true); connection.setRequestMethod("GET"); connection.connect(); int code = connection.getResponseCode(); if (code == 200){ InputStream is = connection.getInputStream(); result = getStringFromInputStream(is); } } catch (Exception e) { e.printStackTrace(); } return result; } /** * httpclient * @param urlString * @return */ public static String getFromHttpClient(String urlString){ String result = ""; try { HttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(urlString); HttpResponse response = client.execute(httpGet); int code = response.getStatusLine().getStatusCode(); if (code == 200){ InputStream is = response.getEntity().getContent(); result = getStringFromInputStream(is); } } catch (Exception e) { e.printStackTrace(); } return result; } private static String getStringFromInputStream(InputStream is) { String result = ""; try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); int length = -1; byte[] buffer = new byte[1024]; while ((length = is.read(buffer,0,buffer.length)) != -1){ baos.write(buffer,0,length); baos.flush(); } result = baos.toString(); baos.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } return result; } }
------------------------------------------------------------------------------------------------------------------------------------------------------