综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码

来源:互联网 发布:淘宝店铺保证金在哪交 编辑:程序博客网 时间:2024/06/01 08:06
 //给的接口有中文的时候需要 用下面的方法进行转化 :// URLEncoder.encode();
//eg:
String temp = "中国";
String aa = URLEncoder.encode(temp);
String url= baseUrl + aa;

MainActivity:
package com.wzq.mapp;import android.os.Bundle;import android.support.annotation.IdRes;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.RadioGroup;import com.wzq.mapp.fragments.MainFragment;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    //定义变量    private ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();    private RadioGroup group;    private FragmentManager supportFragmentManager;    String TAG = "wzq";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化组件        group = (RadioGroup) findViewById(R.id.group);        initFragment();//初始化4个fragment        supportFragmentManager = getSupportFragmentManager();        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();        fragmentTransaction.add(R.id.fl_main, fragmentList.get(0)).commit();        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            //要切换fragment            @Override            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {                Log.e(TAG, "onCheckedChanged 点击的id:" + i);                switch (i) {                    case R.id.but1:                        supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragmentList.get(0)).commit();                        Log.e(TAG, "onCheckedChanged: 点击button1");                        break;                    case R.id.but2:                        getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(1)).commit();                        Log.e(TAG, "onCheckedChanged: 点击button2");                        break;                    case R.id.but3:                         getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(2)).commit();                        Log.e(TAG, "onCheckedChanged: 点击button3" );                        break;                    case R.id.but4:                        getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(3)).commit();                        break;                    case R.id.but5:                        getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(4)).commit();                        break;                }            }        });    }    //准备好所有的fragment    private void initFragment() {        for (int i = 0; i < 5; i++) {            fragmentList.add(new MainFragment());        }    }}
MainFragment
package com.wzq.mapp.fragments;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.wzq.mapp.R;import java.util.ArrayList;/** * author:Created by WangZhiQiang on 2017-11-10. */public class MainFragment extends Fragment {    private ViewPager viewpager;    ArrayList<ChildFragment> childFragments = new ArrayList();    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_a, null);        viewpager = view.findViewById(R.id.viewpager);        return view;    }    @Override    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        initChildFragment();        viewpager.setAdapter( new MPagerAdapter(getChildFragmentManager()));    }    private void initChildFragment() {        for (int i = 0; i <3 ; i++) {            childFragments.add(new ChildFragment());        }    }    private class MPagerAdapter extends FragmentPagerAdapter {        public MPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return childFragments.get(position);        }        @Override        public int getCount() {            return childFragments.size();        }    }}

ChildFragment 
package com.wzq.mapp.fragments;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bwie.xlistviewlibrary.View.XListView;import com.bwie.xlistviewlibrary.utils.NetWordUtils;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import com.wzq.mapp.R;import com.wzq.mapp.bean.Product;import java.util.ArrayList;import java.util.List;/** * author:Created by WangZhiQiang on 2017-11-10. */public class ChildFragment extends Fragment implements XListView.IXListViewListener {    private XListView xlv;    ArrayList<Product.DataBean> list = new ArrayList();    String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";    private MAdapter mAdapter;    private ImageLoader imageLoaderInstance;    int page = 0;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_b, container, false);        xlv = (XListView) view.findViewById(R.id.xlv);        return view;    }    @Override    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        imageLoaderInstance = ImageLoader.getInstance();        mAdapter = new MAdapter();        xlv.setAdapter(mAdapter);        xlv.setPullLoadEnable(true);        xlv.setXListViewListener(this);        getNetData(page);    }    /**     * 请求网络数据     */    private void getNetData(int number) {        new MAsyncTask().execute(baseUrl + number);    }    private class MAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return list.get(i);        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public int getViewTypeCount() {            return 2;        }        @Override        public int getItemViewType(int position) {            int type = 0;            if (list.get(position).getIMAGEURL() ==null || list.get(position).getIMAGEURL()==""  ) {                type = 0; //只有文字的条目            } else {                type = 1;   //文字+图片            }            return type;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            Holder0 holder0 = null;            Holder1 holder1 = null;            int itemViewType = getItemViewType(i);            switch (itemViewType) {                case 0: // 只有文字                    if (view == null) {                        holder0 = new Holder0();                        view = View.inflate(getActivity(), R.layout.item0, null);                        holder0.desc = view.findViewById(R.id.desc);                        view.setTag(holder0);                    } else {                        holder0 = (Holder0) view.getTag();                    }                    holder0.desc.setText(list.get(i).getTITLE());                    break;                case 1: //文字+图片                    if (view == null) {                        holder1 = new Holder1();                        view = View.inflate(getActivity(), R.layout.item1, null);                        holder1.desc1 = view.findViewById(R.id.desc1);                        holder1.iv = view.findViewById(R.id.iv);                        view.setTag(holder1);                    } else {                        holder1 = (Holder1) view.getTag();                    }                    holder1.desc1.setText(list.get(i).getTITLE());                    imageLoaderInstance.displayImage(list.get(i).getIMAGEURL(), holder1.iv);                    break;            }            return view;        }    }    class Holder0 {        private TextView desc;    }    class Holder1 {        private TextView desc1;        private ImageView iv;    }    /**     * 下拉刷新     */    @Override    public void onRefresh() {        list.clear();        page = 0;        getNetData(page);    }    @Override    public void onLoadMore() {        getNetData(page+=20);    }    /**     * 请求网络     */    private class MAsyncTask extends AsyncTask<String, Void, String> {        @Override        protected String doInBackground(String... strings) {            return NetWordUtils.getNetjson(strings[0]);        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson = new Gson();            Product product = gson.fromJson(s, Product.class);            List<Product.DataBean> dataBeanList = product.getData();            list.addAll(dataBeanList);            mAdapter.notifyDataSetChanged();            uiComplete();//让刷新头 或刷新底部 隐藏        }    }    public void uiComplete(){        xlv.stopRefresh();        xlv.stopLoadMore();        xlv.setRefreshTime("刚刚");    }}