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; } }}
阅读全文
0 0
- Tablayout与XListView
- TabLayout+XlistView
- TabLayout和banner与XLISTView混合运用
- Tablayout与Viewpager里添加Xlistview实现上拉下拉
- 实现Banner,TabLayout,XlistView
- TabLayout+Xlistview+第三方登录
- 设置Xlistview在tablayout里面的写法
- 侧拉+TabLayout+轮播+XListView
- 网络判断+Fragment+ViewPager+XListView+TabLayout横向滑动菜单 Z2
- 网络判断+网络请求+TabLayout+XListview+多条目加载.
- DrawerLayout与XlistView结合
- viewpager 与 Xlistview
- imageSlider与XListView的联用
- xlistView与本地缓存加载
- XListView 展示刷新与加载
- xlistview获取图片与文字
- 联网判断与Xlistview展示
- Tablayout,CoordinatorLayout与Behavior
- jQuery之DOM操作小结
- 无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法
- clientX、screenX、pageX、offsetX、layerX
- Qt 之 解析wav文件的头信息(详细分析、对比不同wav文件的数据)
- LibreOJ 6178「美团 CodeM 初赛 Round B」景区路线规划
- Tablayout与XListView
- 树莓派GPIO入门05-驱动数码管显示数字(嵌入式很好的链接平台,见解深刻)
- ImageLoader的使用
- Largest_Rectangle_in_Histogram
- webpack配置
- 常用的依赖和权限
- 学习验证
- canvas scale()画布缩放的使用
- 博客迁移到简书