综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码
来源:互联网 发布:淘宝店铺保证金在哪交 编辑:程序博客网 时间:2024/06/01 08:06
//给的接口有中文的时候需要 用下面的方法进行转化 :// URLEncoder.encode();//eg:
String temp = "中国";
String aa = URLEncoder.encode(temp);
String url= baseUrl + aa;
MainActivity:
package com.wzq.mapp;import android.os.Bundle;import android.support.annotation.IdRes;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.RadioGroup;import com.wzq.mapp.fragments.MainFragment;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { //定义变量 private ArrayList<Fragment> fragmentList = new ArrayList<Fragment>(); private RadioGroup group; private FragmentManager supportFragmentManager; String TAG = "wzq"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化组件 group = (RadioGroup) findViewById(R.id.group); initFragment();//初始化4个fragment supportFragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fl_main, fragmentList.get(0)).commit(); group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { //要切换fragment @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { Log.e(TAG, "onCheckedChanged 点击的id:" + i); switch (i) { case R.id.but1: supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragmentList.get(0)).commit(); Log.e(TAG, "onCheckedChanged: 点击button1"); break; case R.id.but2: getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(1)).commit(); Log.e(TAG, "onCheckedChanged: 点击button2"); break; case R.id.but3: getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(2)).commit(); Log.e(TAG, "onCheckedChanged: 点击button3" ); break; case R.id.but4: getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(3)).commit(); break; case R.id.but5: getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, fragmentList.get(4)).commit(); break; } } }); } //准备好所有的fragment private void initFragment() { for (int i = 0; i < 5; i++) { fragmentList.add(new MainFragment()); } }}
MainFragment
package com.wzq.mapp.fragments;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.wzq.mapp.R;import java.util.ArrayList;/** * author:Created by WangZhiQiang on 2017-11-10. */public class MainFragment extends Fragment { private ViewPager viewpager; ArrayList<ChildFragment> childFragments = new ArrayList(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_a, null); viewpager = view.findViewById(R.id.viewpager); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initChildFragment(); viewpager.setAdapter( new MPagerAdapter(getChildFragmentManager())); } private void initChildFragment() { for (int i = 0; i <3 ; i++) { childFragments.add(new ChildFragment()); } } private class MPagerAdapter extends FragmentPagerAdapter { public MPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return childFragments.get(position); } @Override public int getCount() { return childFragments.size(); } }}
ChildFragment
package com.wzq.mapp.fragments;import android.os.AsyncTask;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.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bwie.xlistviewlibrary.View.XListView;import com.bwie.xlistviewlibrary.utils.NetWordUtils;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import com.wzq.mapp.R;import com.wzq.mapp.bean.Product;import java.util.ArrayList;import java.util.List;/** * author:Created by WangZhiQiang on 2017-11-10. */public class ChildFragment extends Fragment implements XListView.IXListViewListener { private XListView xlv; ArrayList<Product.DataBean> list = new ArrayList(); String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum="; private MAdapter mAdapter; private ImageLoader imageLoaderInstance; int page = 0; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_b, container, false); xlv = (XListView) view.findViewById(R.id.xlv); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); imageLoaderInstance = ImageLoader.getInstance(); mAdapter = new MAdapter(); xlv.setAdapter(mAdapter); xlv.setPullLoadEnable(true); xlv.setXListViewListener(this); getNetData(page); } /** * 请求网络数据 */ private void getNetData(int number) { new MAsyncTask().execute(baseUrl + number); } private 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 int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { int type = 0; if (list.get(position).getIMAGEURL() ==null || list.get(position).getIMAGEURL()=="" ) { type = 0; //只有文字的条目 } else { type = 1; //文字+图片 } return type; } @Override public View getView(int i, View view, ViewGroup viewGroup) { Holder0 holder0 = null; Holder1 holder1 = null; int itemViewType = getItemViewType(i); switch (itemViewType) { case 0: // 只有文字 if (view == null) { holder0 = new Holder0(); view = View.inflate(getActivity(), R.layout.item0, null); holder0.desc = view.findViewById(R.id.desc); view.setTag(holder0); } else { holder0 = (Holder0) view.getTag(); } holder0.desc.setText(list.get(i).getTITLE()); break; case 1: //文字+图片 if (view == null) { holder1 = new Holder1(); view = View.inflate(getActivity(), R.layout.item1, null); holder1.desc1 = view.findViewById(R.id.desc1); holder1.iv = view.findViewById(R.id.iv); view.setTag(holder1); } else { holder1 = (Holder1) view.getTag(); } holder1.desc1.setText(list.get(i).getTITLE()); imageLoaderInstance.displayImage(list.get(i).getIMAGEURL(), holder1.iv); break; } return view; } } class Holder0 { private TextView desc; } class Holder1 { private TextView desc1; private ImageView iv; } /** * 下拉刷新 */ @Override public void onRefresh() { list.clear(); page = 0; getNetData(page); } @Override public void onLoadMore() { getNetData(page+=20); } /** * 请求网络 */ private class MAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { return NetWordUtils.getNetjson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Product product = gson.fromJson(s, Product.class); List<Product.DataBean> dataBeanList = product.getData(); list.addAll(dataBeanList); mAdapter.notifyDataSetChanged(); uiComplete();//让刷新头 或刷新底部 隐藏 } } public void uiComplete(){ xlv.stopRefresh(); xlv.stopLoadMore(); xlv.setRefreshTime("刚刚"); }}
阅读全文
0 0
- 综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码
- 综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码
- 综合练习之--1、复用布局页面显示XLV 和 侧滑 vp效果
- 综合练习之--1、复用布局页面显示XLV 和 侧滑 vp效果
- 第一个综合题的MainActivity
- 第二个综合题的mainactivity
- ViewPager、Fragment和ListView的综合使用
- 20day-、UI综合练习(网易彩票)---主要代码和对应的业务分析
- opengl之综合练习
- Unity3D之综合练习
- jQuery练习--隐藏和显示效果
- vp最小的例子和vuAllocTracer小解
- 综合练习(轮播+Fragment+xlistView)
- 代码编辑区和效果显示区结合的学习
- Xml解析 + Fragment + XListView +vp
- dom的综合练习
- 类的综合练习
- qq分享时mainActivity的主要代码
- 全是套路的招聘
- 学习Js(1)-使用Jquery实现滑动切换效果
- 记录一篇IDEA环境搭建JFinal框架的demo
- Range Sum Query 2D
- JSON的简单介绍以及C语言的JSON库使用
- 综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码
- Webpack noParse参数
- Android使用ZXing扫描二维码,并返回二维码结果
- 如何为nginx配置https(免费证书)
- 命名规范
- c:if标签的判断
- android databinding recyclerview多种itembinding
- 模块API之ref_module
- Spark sc.textFile(...).map(...).count() 执行完整流程