Tablayout与XListView

来源:互联网 发布:易语言网页填表源码 编辑:程序博客网 时间:2024/06/10 01:47
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <android.support.design.widget.TabLayout        android:id="@+id/tabLayout"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" /></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <com.bwie.xlistviewlibrary.View.XListView        android:id="@+id/xlv"        android:layout_width="match_parent"        android:layout_height="match_parent"/></LinearLayout>

__________________________________________________________________________
public class MainActivity extends AppCompatActivity {    private TabLayout tabLayout;    private ViewPager viewPager;    ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();//    String url = "http://gank.io/api/data/Android/10/1";    String baseUrl = "http://gank.io/api/data/";    String[] string={"福利","Android","iOS","休息视频","拓展资源","前端","all"};    private List<String> titleList;//这个是标题的集合    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tabLayout = (TabLayout) findViewById(R.id.tabLayout);        viewPager = (ViewPager) findViewById(R.id.viewPager);        titleList = Arrays.asList(string);        for (int i = 0; i < titleList.size(); i++) {            //URLEncoder.encode这个方法对中文进行转义;            String urlTemp = baseUrl+ URLEncoder.encode(titleList.get(i));            BlankFragment fragment = BlankFragment.getInstances(urlTemp);            fragmentList.add(fragment);        }        viewPager.setAdapter(new MPagerAdapter(getSupportFragmentManager()));        //tablayout的标题的显示模式        tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);        tabLayout.setupWithViewPager(viewPager);    }    class  MPagerAdapter extends FragmentPagerAdapter {        public MPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return fragmentList.get(position);        }        @Override        public int getCount() {            return fragmentList.size();        }        //需要重写个返回标题的方法;        @Override        public CharSequence getPageTitle(int position) {            return titleList.get(position);        }    }}
_____________________
public class BlankFragment extends Fragment implements XListView.IXListViewListener {    private String url;    private XListView xListView;    ArrayList<Product.ResultsBean> list = new ArrayList<Product.ResultsBean>();    int page = 1;    private MAdapter mAdapter;    private ImageLoader imageLoaderInstance;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = View.inflate(getActivity(), R.layout.frag1, null);        xListView = view.findViewById(R.id.xlv);        return view;    }    @Override    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        Bundle bundle = getArguments();        url = bundle.getString("url");        imageLoaderInstance = ImageLoader.getInstance();        mAdapter = new MAdapter();        xListView.setAdapter(mAdapter);//设置listview的适配器;        getNetData(1);//获取网络数据        xListView.setXListViewListener(this);        xListView.setPullLoadEnable(true);//设置可以加载更多;    }    public static BlankFragment getInstances(String url) {        BlankFragment blankFragment = new BlankFragment();        Bundle bundle = new Bundle();        bundle.putString("url", url);        blankFragment.setArguments(bundle);        return blankFragment;    }    private void getNetData(int pagerTemp) {        new MAsyncTask().execute(url + "/10/" + pagerTemp);    }    @Override    public void onRefresh() {        list.clear();        getNetData(1);        UiComplete();    }    @Override    public void onLoadMore() {        getNetData(page++);        UiComplete();    }    public void UiComplete() {        xListView.stopRefresh();        xListView.stopLoadMore();        xListView.setRefreshTime("刚刚");    }    /**     * 创建异步任务类     * 第一个泛型---是传递过来的接口地址     * 第二个参数是 请求接口的进度     * 第三个参数是 异步任务处理完返回的数据     */    class MAsyncTask extends AsyncTask<String, Void, String> {        public MAsyncTask() {            super();        }        /**         * String... strings  这个参数是可变参数;         * 这个方法运行在子线程,去请求网络;         */        @Override        protected String doInBackground(String... strings) {            String url = strings[0];            String netjson = NetWordUtils.getNetjson(url);            //把从网络请求的json返回回去;            Log.e("wzq", "doInBackground: " + netjson);            return netjson;        }        /**         * 这个方法接收的参数s, 就是doInBackground返回的值;         * 这个方法是在主线程运行,可以更新ui;         *         * @param s         */        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson = new Gson();            Product product = gson.fromJson(s, Product.class);            List<Product.ResultsBean> results = product.getResults();            list.addAll(results);            mAdapter.notifyDataSetChanged();        }    }    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 View getView(int i, View view, ViewGroup viewGroup) {            View viewItem = View.inflate(getActivity(), R.layout.listview, null);            TextView textView = (TextView) viewItem.findViewById(R.id.textView);            ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);            textView.setText(list.get(i).getDesc());            DisplayImageOptions options = new DisplayImageOptions.Builder()                    .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型                    .build();            imageLoaderInstance.displayImage(list.get(i).getUrl(), imageView,options);            return viewItem;        }    }}

 
原创粉丝点击