小练习A

  tablayout添加依赖
    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support:support-v4:25.3.1'
            2布局
    <? 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"
    tools:context="com.example.firstweeka.MainActivity">
    <!--
    滑动 app:tabMode="scrollable"-->
    <android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    app:tabMode="scrollable"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></android.support.design.widget.TabLayout>

    <android.support.v4.view.ViewPager
    android:id="@+id/vp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
            3.ListView布局
    <? xml version = "1.0"
    encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
    android:id="@+id/Frag_Image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

    <TextView
    android:id="@+id/Frag_Text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="10dp"
    android:textSize="18sp"/>

</LinearLayout>
            4.MainActivity类
package com.example.firstweeka;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import com.example.firstweeka.adapter.VPAdataper;
import com.example.firstweeka.bean.HomeBean;
import com.example.firstweeka.bean.TitleBean;
import com.example.firstweeka.fragment.NewsFragment;
import com.google.gson.Gson;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.util.ArrayList;
import java.util.List;

    public class MainActivity extends AppCompatActivity {

        private TabLayout tablayout;
        private ViewPager vp;
        private List<TitleBean.ResultBean.DateBean> str_list = new ArrayList<>();
        private List<Fragment> frag_list = new ArrayList<Fragment>();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            addHttp("http://result.eolinker.com/gfGTLlHc049c6b450500b16971f52bd8e83f6b2fed305ab?uri=news");
        }

        //加载网络数据
        private void addHttp(String url) {
            RequestParams params = new RequestParams();
            params.setUri(url);
            x.http().get(params, new Callback.CommonCallback<String>() {
                @Override
                public void onSuccess(String result) {
                    Gson gson = new Gson();
                    TitleBean titleBean = gson.fromJson(result, TitleBean.class);
                    List<TitleBean.ResultBean.DateBean> data = titleBean.getResult().getDate();
                    //循环遍历
                    for (int i = 0; i < titleBean.getResult().getDate().size(); i++) {
                        str_list.addAll(data);
                        NewsFragment newsFragment = new NewsFragment();
                        frag_list.add(newsFragment);
                    }
                    VPAdataper vpAdataper = new VPAdataper(getSupportFragmentManager(), str_list, frag_list);
                    vp.setAdapter(vpAdataper);
                    tablayout.setupWithViewPager(vp);
                }

                @Override
                public void onError(Throwable ex, boolean isOnCallback) {

                }

                @Override
                public void onCancelled(CancelledException cex) {

                }

                @Override
                public void onFinished() {

                }
            });

        }

        private void initView() {
            tablayout = (TabLayout) findViewById(R.id.tablayout);
            vp = (ViewPager) findViewById(R.id.vp);
            //tablayout和ViewPager进行关联
//        tablayout.setupWithViewPager(vp);
        }


    }
5.ViewPager适配器
package com.example.firstweeka.adapter;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.example.firstweeka.bean.TitleBean;

import java.util.List;


    public class VPAdataper extends FragmentPagerAdapter {
        private List<TitleBean.ResultBean.DateBean> title_List;
        private List<Fragment> frag_List;

        public VPAdataper(FragmentManager fm, List<TitleBean.ResultBean.DateBean> title_List, List<Fragment> frag_List) {
            super(fm);
            this.frag_List = frag_List;
            this.title_List = title_List;
        }

        @Override
        public Fragment getItem(int position) {
            return frag_List.get(position);
        }

        @Override
        public int getCount() {
            return frag_List.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return title_List.get(position).getTitle();
        }
    }
6.碎片
package com.example.firstweeka.fragment;

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.ListView;

import com.example.firstweeka.R;
import com.example.firstweeka.adapter.FragAdapter;
import com.example.firstweeka.bean.HomeBean;
import com.google.gson.Gson;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.util.List;

    public class NewsFragment extends Fragment {
        private ListView Frag_List;
        private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
        private List<HomeBean.DataBean> data;

        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.newsfrag, container, false);
            addFrag();
            initView(view);
            return view;
        }

        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            initData();
        }

        private void initData() {
        }

        private void addFrag() {
            RequestParams params = new RequestParams();
            params.setUri(url);
            x.http().get(params, new Callback.CommonCallback<String>() {

                @Override
                public void onSuccess(String result) {
                    if (result != null) {
                        Gson gson = new Gson();
                        HomeBean homeBean = gson.fromJson(result, HomeBean.class);
                        data = homeBean.getData();
                        FragAdapter frag = new FragAdapter(getActivity(), data);
                        Frag_List.setAdapter(frag);

                    }
                }

                @Override
                public void onError(Throwable ex, boolean isOnCallback) {

                }

                @Override
                public void onCancelled(CancelledException cex) {

                }

                @Override
                public void onFinished() {

                }
            });
        }


        private void initView(View view) {
            Frag_List = (ListView) view.findViewById(R.id.Frag_List);
        }
    }
7.Fragment的适配器
package com.example.firstweeka.adapter;


import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.firstweeka.R;
import com.example.firstweeka.bean.HomeBean;

import org.xutils.x;

import java.util.ArrayList;
import java.util.List;


    public class FragAdapter extends BaseAdapter {
        private Context context;
        private List<HomeBean.DataBean> f_List = new ArrayList<>();

        public FragAdapter(Context context, List<HomeBean.DataBean> data) {
            this.f_List = data;
            this.context = context;
        }

        @Override
        public int getCount() {
            return f_List.size();
        }

        @Override
        public HomeBean.DataBean getItem(int position) {
            return f_List.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder;
            if (convertView == null) {
                convertView = View.inflate(context, R.layout.news_frag_image_text, null);
                viewHolder = new ViewHolder();
                viewHolder.imageView = (ImageView) convertView.findViewById(R.id.Frag_Image);
                viewHolder.textView = (TextView) convertView.findViewById(R.id.Frag_Text);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            viewHolder.textView.setText(getItem(position).getNews_summary());
            x.image().bind(viewHolder.imageView, getItem(position).getPic_url());
            return convertView;
        }

        static class ViewHolder {
            ImageView imageView;
            TextView textView;
        }
    }
8.Xutils
package com.example.firstweeka.application;

import android.app.Application;

import org.xutils.BuildConfig;
import org.xutils.x;


    public class MyApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            x.Ext.init(this);
            x.Ext.setDebug(BuildConfig.DEBUG);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值