1.在listview点击文章标题的时候,可用Intent向下一个活动传值 (在解析json数据的时候将标题和文章的url保存起来)
public class SecondFragment extends Fragment {
private ListView listView;
private List<WeChat> mList = new ArrayList<>();
private List<String> mListTitle = new ArrayList<>(); //存放标题
private List<String> mListUrl = new ArrayList<>(); //存放新闻地址
private void initView(View view) {
listView = (ListView) view.findViewById(R.id.weChat);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> view, View view1, int i, long l) {
Intent intent = new Intent(getActivity(), WebViewActivity.class);
intent.putExtra("title",mListTitle.get(i)); //向WebviewActivity传值
intent.putExtra("url",mListUrl.get(i));
startActivity(intent);
}
});
}
private void parseJson(String t) {
try {
JSONObject object = new JSONObject(t);
JSONObject result = object.getJSONObject("result");
JSONArray list = result.getJSONArray("list");
for(int i=0;i<list.length();i++){
JSONObject json = (JSONObject) list.get(i);
WeChat data = new WeChat();
data.setTitle(json.getString("title"));
data.setSource(json.getString("source"));
data.setImage(json.getString("firstImg"));
mList.add(data);
mListTitle.add(json.getString("title")); //在解析json数据的时候将标题和文章的url保存起来
mListUrl.add(json.getString("url"));
}
WeChatAdapter adapter= new WeChatAdapter(getActivity(),mList);
listView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
2.然后在WebViewActivity中用getStringExtra()来获取标题和文章,再进行加载网页的逻辑
public class WebViewActivity extends BaseActivity {
private ProgressBar progressbar;
private WebView webview;
private void initView() {
progressbar= (ProgressBar) findViewById(R.id.progressbar);
webview= (WebView) findViewById(R.id.webview);
Intent intent = getIntent(); //获取到文章的标题和url
String title=intent.getStringExtra("title");
final String url=intent.getStringExtra("url");
getSupportActionBar().setTitle(title); //设置文章标题
//进行加载网页的逻辑
webview.getSettings().setJavaScriptEnabled(true); //支持JS
webview.getSettings().setSupportZoom(true); //支持缩放
webview.getSettings().setBuiltInZoomControls(true);
webview.setWebChromeClient(new WebViewClient()); //接口回调
webview.loadUrl(url);//加载网页
//本地显示,而不是在浏览器显示
webview.setWebViewClient(new android.webkit.WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(url);
return true;//我接受这个事件
}
});
}
public class WebViewClient extends WebChromeClient {
//进度变化的监听
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress == 100){
progressbar.setVisibility(View.GONE);
}
super.onProgressChanged(view, newProgress);
}
}
}
代码不全,只贴了一些重要的函数代码!