TabLayout + Fragment + 网络请求
来源:互联网 发布:陈国良院士 知乎 编辑:程序博客网 时间:2024/06/05 08:14
TabLayout所需要的依赖
compile 'com.android.support:design:23.4.0'
手动添加 import android.support.design.widget.TabLayout
TabLaout的MainActivity
import android.os.Bundle;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { TabLayout ta; private ViewPager vp; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 vp = (ViewPager) findViewById(R.id.vp); ta= (TabLayout) findViewById(R.id.tab); //创建集合 list=new ArrayList<>(); //添加数据 list.add("头条"); list.add("社会"); list.add("国内"); list.add("国际"); list.add("娱乐"); list.add("体育"); list.add("军事"); list.add("科技"); list.add("财经"); list.add("时尚"); //监听事件 vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public CharSequence getPageTitle(int position) { return list.get(position); } @Override public Fragment getItem(int position) { Fragments fragments = new Fragments(); Bundle bundle = new Bundle(); if(list.get(position).endsWith("头条")){ bundle.putString("name","top"); }else if (list.get(position).equals("社会")){ bundle.putString("name","shehui"); }else if (list.get(position).equals("国内")){ bundle.putString("name","guonei"); }else if (list.get(position).equals("国际")){ bundle.putString("name","guoji"); }else if (list.get(position).equals("娱乐")){ bundle.putString("name","yule"); }else if (list.get(position).equals("体育")){ bundle.putString("name","tiyu"); }else if (list.get(position).equals("军事")){ bundle.putString("name","junshi"); }else if (list.get(position).equals("科技")){ bundle.putString("name","keji"); }else if (list.get(position).equals("财经")){ bundle.putString("name","caijing"); }else if (list.get(position).equals("时尚")){ bundle.putString("name","shishang"); } fragments.setArguments(bundle); return fragments; } @Override public int getCount() { return list.size(); } }); //绑定 ta.setupWithViewPager(vp); }}
Fragment + 网络请求
import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.List;public class Fragments extends Fragment { private ListView lv; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0) { JsonRootBean bean = (JsonRootBean) msg.obj; list = bean.getResult().getData(); } } }; private List<Data> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //初始化布局 View v = View.inflate(getActivity(), R.layout.ragments, null); //初始化控件 lv = v.findViewById(R.id.lv); return v; } //适配器 class MyAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { He he = null; if (view == null) { view = View.inflate(getActivity(), R.layout.tem, null); he = new He(); he.img = view.findViewById(R.id.img); he.wenben = view.findViewById(R.id.wenzi); view.setTag(he); } else { he = (He) view.getTag(); } he.wenben.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(), he.img); return view; } class He { ImageView img; TextView wenben; } } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Bundle bundle = getArguments(); String string = bundle.getString("name", "top"); getData(string); } private void getData(final String string) { new Thread() { @Override public void run() { String path = "http://v.juhe.cn/toutiao/index?type=" + string + "&key=597b4f9dcb50e051fd725a9ec54d6653"; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == 200) { InputStream stream = connection.getInputStream(); String json = zhuan(stream, "utf-8"); Gson gson = new Gson(); JsonRootBean jsonRootBean = gson.fromJson(json, JsonRootBean.class); Message message = Message.obtain(); message.what = 0; message.obj = jsonRootBean; handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } private String zhuan(InputStream stream, String s) { try { InputStreamReader in = new InputStreamReader(stream, s); BufferedReader re = new BufferedReader(in); String ss = null; StringBuilder builder = new StringBuilder(); while ((ss = re.readLine()) != null) { builder.append(ss); } return builder.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }}
//关于TabLayout的布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tab" app:tabIndicatorColor="#f5e20d" app:tabIndicatorHeight="5dp" app:tabGravity="center" app:tabSelectedTextColor="#090df7" app:tabTextColor="#000000" app:tabMode="scrollable"> </android.support.design.widget.TabLayout></RelativeLayout>
阅读全文
0 0
- TabLayout + Fragment + 网络请求
- fragment摆放tablayout网络加载数据
- fragment网络请求getActivity()
- TabLayout+Fragment
- TabLayout+Fragment
- TabLayout+Fragment
- tablayout+fragment
- Design TabLayout+ViewPager+Fragment,实现选中请求数据+缓存
- Design TabLayout+ViewPager+Fragment,选中请求数据+缓存
- 网络请求 + DrawerLayout + PullToFefresh + Fragment
- 网络判断+网络请求+TabLayout+XListview+多条目加载.
- 网络判断+Fragment+ViewPager+XListView+TabLayout横向滑动菜单 Z2
- TabLayout +ViewPager + Fragment : RecyclerView展示网络数据 + webView 显示网页
- TabLayout +ViewPager + Fragment : RecyclerView展示网络数据 + webView 显示网页
- TabLayout +ViewPager + Fragment : RecyclerView展示网络数据 + webView 显示网页
- tablayout上显示网络数据(xUtils请求)s
- TabLayout+Fragment android design
- ViewPager + Fragment + TabLayout
- 第3周项目4 顺序表应用
- 执行同步数据库命令 su -s /bin/sh -c "keystone-manage db-sync" keystone 失败
- node.js非安装配置
- 扩展python
- MySQL数据库引擎特性,和优化
- TabLayout + Fragment + 网络请求
- DES加密在.net与java中的写法
- python爬虫的最佳实践(五)--selenium+PhantomJS的简单使用
- java数据库编程---jdbc2.0操作
- Servlet 初学笔记
- java--Spring切入点表达式--TLjh
- java学习笔记-static初始化以及生命周期
- mysql怎么写(笔记)
- MySQL存储引擎--MyISAM与InnoDB区别