package com.example.myapplication; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.*; import java.net.URL; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView mListView; private static String URL = "http://news.6liu.top/news"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //默认加载的页面 setContentView(R.layout.activity_main); mListView = (ListView) findViewById(R.id.new_main); //点击事件 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { //获得保存网址的隐藏对象 TextView content= (TextView) view.findViewById(R.id.new_content); //传递的activity Intent intent = new Intent(MainActivity.this, NewsActivity.class); //保存参数 intent.putExtra("content_url", content.getText().toString()); //向下传值 startActivity(intent); } }); //发起URL请求 new NewsAsyncTask().execute(URL); } /** * 实现网络的异步访问 */ class NewsAsyncTask extends AsyncTask>{ @Override protected List doInBackground(String... strings) { return getJsonData(strings[0]); } @Override protected void onPostExecute(List newBeans) { super.onPostExecute(newBeans); NewsAdapter adapter = new NewsAdapter(MainActivity.this, newBeans, mListView); mListView.setAdapter(adapter); } } /** * 将获取到的json数据转化为NewBean对象 * @param url * @return */ private List getJsonData(String url) { List newsBeanList = new ArrayList<>(); try { String jsonString = readStream(new URL(url).openStream()); NewBean newBean; //解析Json数据 JSONObject jsonObject; try{ jsonObject = new JSONObject(jsonString); JSONArray jsonArray = jsonObject.getJSONArray("data"); for (int i=0; i