第六节总结

来源:互联网 发布:淘宝店铺ppt 编辑:程序博客网 时间:2024/06/08 08:27

总结

这一章主要实现微信精选模块的功能,也是调用接口解析json,跳页面,传值,实现webView。。。嗯  就这些!!!

实现BaseAdapter作为ListView的Adapter

不多比比,贴代码吧

public class wxAdapter extends BaseAdapter {    private Context mContext;    private LayoutInflater inflater;    private weinxinData data;    private List<weinxinData> mlist;    public TextView title;    public TextView weixinname;    public wxAdapter(Context mContext,  List<weinxinData> mlist) {        this.mContext = mContext;        inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        this.mlist = mlist;        }    }    @Override    public int getCount() {        return mlist.size();    }    @Override    public Object getItem(int position) {        return mlist.get(position);    }    @Override    public long getItemId(int position) {        return position;    }        @Override        public View getView(int position, View convertView, ViewGroup parent) {        viewHolder viewHolder = null;        if (convertView==null){            viewHolder=new viewHolder();            convertView=inflater.inflate(R.layout.weixin_item,null);            viewHolder.title= (TextView) convertView.findViewById(R.id.weixin_item_title_tv);            viewHolder.weixinname=(TextView)convertView.findViewById(R.id.weixin_item_weixinname_tv);            convertView.setTag(viewHolder);        }else {            viewHolder= (com.example.myapplication.entity.viewHolder) convertView.getTag();        }        weinxinData data=mlist.get(position);        viewHolder.title.setText(data.getTitle());        viewHolder.weixinname.setText(data.getWeixinname());        return convertView;    }}
使用的viewHolder

public class viewHolder {    public TextView title;    public TextView weixinname;}
Fragment中实现逻辑

public class wxFragment extends Fragment {    private ListView mlistView;    private List<weinxinData> mlist;    private List<String> mtitle;    private List<String> murl;    //数据接口    private String url="http://api.jisuapi.com/weixinarticle/get?channelid=1&start=0&num=10&appkey=c7b6a14799a0d2a9";    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.weixinlayout, container, false);        findView(view);        return view;    }    private void findView(View view) {        mlistView= (ListView) view.findViewById(R.id.weixin_listVIew);        mlist=new ArrayList<>();        mtitle=new ArrayList<>();        murl=new ArrayList<>();        RxVolley.get(url, new HttpCallback() {            @Override            public void onSuccess(String t) {                super.onSuccess(t);                prasingUrl(t);            }        });        //ListView的一条的点击事件        mlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //传值跳页面                Intent intent=new Intent(getActivity(),webViewActity.class);                intent.putExtra("title",mtitle.get(position));                intent.putExtra("url",murl.get(position));                startActivity(intent);            }        });    }//解析JSON    private void prasingUrl(String t) {        try {            JSONObject jsonObject=new JSONObject(t);            JSONObject jsonResult=jsonObject.getJSONObject("result");            JSONArray jsonArray=jsonResult.getJSONArray("list");            for (int i = 0; i <jsonArray.length() ; i++) {                JSONObject jsonObject1=jsonArray.getJSONObject(i);                String Stitle=jsonObject1.getString("title");                String URL=jsonObject1.getString("url");                String Sweixinname=jsonObject1.getString("weixinname");                L.i("title:"+Stitle+Sweixinname);                weinxinData data = new weinxinData(Stitle,Sweixinname);                mlist.add(data);                mtitle.add(Stitle);                murl.add(URL);            }            wxAdapter weixinAdapter=new wxAdapter(getActivity(),mlist);            mlistView.setAdapter(weixinAdapter);        } catch (JSONException e) {            e.printStackTrace();        }    }}
WebView实现加载

public class webViewActity extends BaseActivity {    private WebView mWebView;    public ProgressBar mProgressBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.web);        initView();    }    private void initView() {        mWebView= (WebView) findViewById(R.id.mWebView);        mProgressBar= (ProgressBar) findViewById(R.id.mProgress);        Intent intent=getIntent();        final String title=intent.getStringExtra("title");        final String url=intent.getStringExtra("url");        //设置标题        getSupportActionBar().setTitle(title);        //进行加载网页的逻辑        //支持JS        mWebView.getSettings().setJavaScriptEnabled(true);        //支持缩放        mWebView.getSettings().setSupportZoom(true);        mWebView.getSettings().setBuiltInZoomControls(true);        //接口回调        mWebView.setWebChromeClient(new WebChromeClient(){            public void onProgressChanged(WebView view, int newProgress) {                if(newProgress == 100){                    mProgressBar.setVisibility(View.GONE);                }                super.onProgressChanged(view, newProgress);            }        });        //加载网页        mWebView.loadUrl(url);        //本地显示        mWebView.setWebViewClient(new android.webkit.WebViewClient(){            @Override            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {                view.loadUrl(url);                //我接受这个事件                return true;            }        });    }}
布局就一个WebView一个进度条







原创粉丝点击