网络获取tablayout数据

来源:互联网 发布:mac如何彻底关机 编辑:程序博客网 时间:2024/05/19 20:22
首先需要导入以下包compile 'com.android.support:design:26.0.0-alpha1'compile 'com.jakewharton:butterknife:7.0.1'compile 'org.xutils:xutils:3.5.0'compile 'com.google.code.gson:gson:2.8.1'




activity_main   使用线性布局   以下控件

<android.support.design.widget.TabLayout    android:id="@+id/tablatout"    android:layout_width="match_parent"    android:layout_height="wrap_content"    app:tabIndicatorColor="@color/colorPrimary"    app:tabSelectedTextColor="@color/colorAccent"    app:tabTextColor="@color/colorPrimaryDark"></android.support.design.widget.TabLayout><android.support.v4.view.ViewPager    android:id="@+id/viewpager"    android:layout_width="match_parent"    android:layout_height="match_parent"></android.support.v4.view.ViewPager>xutils的类
public class BaseApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        x.Ext.init(this);        x.Ext.setDebug(BuildConfig.DEBUG);    }}



ContentFragment  类 相应的布局空白
public class ContentFragment extends Fragment {    private static String KEY = "arg";    private View view;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.content_fragment, container, false);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        String url = (String) getArguments().get(KEY);        Log.e("onActivityCreated", "onActivityCreated: " + url);    }    public static Fragment newIn(String url) {        Fragment fragment = new ContentFragment();        Bundle bundle = new Bundle();        bundle.putString(KEY, url);        fragment.setArguments(bundle);        return fragment;    }}




适配器类,单独写了一个
public class MyAdapter extends FragmentPagerAdapter {    private List<NewsBean.DataBean> list;    private Context context;    public MyAdapter(FragmentManager fm, List<NewsBean.DataBean> list, Context context) {        super(fm);        this.list = list;        this.context = context;    }    @Override    public Fragment getItem(int position) {        return ContentFragment.newIn(list.get(position).getUrl());    }    @Override    public int getCount() {        return list.size();    }    @Override    public CharSequence getPageTitle(int position) {        return list.get(position).getName();    }}





主Activity
public class MainActivity extends AppCompatActivity {    @Bind(R.id.tablatout)    TabLayout tablatout;    @Bind(R.id.viewpager)    ViewPager viewpager;    private String url = "http://lf.snssdk.com/neihan/service/tabs/?essence=1&iid=3216590132&device_id=32613520945&ac=wifi&channel=360&aid=7&app_name=joke_essay&version_code=612&version_name=6.1.2&device_platform=android&ssmix=a&device_type=sansung&device_brand=xiaomi&os_api=28&os_version=6.10.1&uuid=326135942187625&openudid=3dg6s95rhg2a3dg5&manifest_version_code=612&resolution=1450*2800&dpi=620&update_version_code=6120";    private List<NewsBean.DataBean> list;    private MyAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();    }    private void initData() {        list = new ArrayList<>();        adapter = new MyAdapter(getSupportFragmentManager(), list, this);        viewpager.setAdapter(adapter);        tablatout.setupWithViewPager(viewpager);        x.http().get(new RequestParams(url), new Callback.CommonCallback<String>() {            @Override            public void onSuccess(String result) {                Gson gson = new Gson();                NewsBean newsBean = gson.fromJson(result, NewsBean.class);                list.addAll(newsBean.getData());                viewpager.post(new Runnable() {                    @Override                    public void run() {                        adapter.notifyDataSetChanged();                    }                });            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }        });    }    private void initView() {        ButterKnife.bind(this);    }    @Override    protected void onDestroy() {        super.onDestroy();        ButterKnife.unbind(this);    }}


另一个需要的类就是Title的类了。



原创粉丝点击