解析微信精选——ListView点击后加载文章

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);
        }
    }
}
代码不全,只贴了一些重要的函数代码!



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值