mymoni3——具体代码~Activity类 + Fragfment类 的具体逻辑代码(+外部类MAsyncTask)
来源:互联网 发布:谢津死亡真相知乎 编辑:程序博客网 时间:2024/05/22 00:53
MainActivity
public class MainActivity extends AppCompatActivity {//RadioButton+Fragment实现页面主布局 private FrameLayout fl; List<Fragment> fal = new ArrayList<>(); private FragmentManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fl = findViewById(R.id.fl); DrawerLayout drawer = findViewById(R.id.drawer); RadioGroup rg = findViewById(R.id.rg); initFragment(); manager = getSupportFragmentManager(); manager.beginTransaction().add(R.id.fl, fal.get(0)).commit(); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { switch (i) { case R.id.rb1: manager.beginTransaction().replace(R.id.fl,fal.get(0)).commit(); break; case R.id.rb2: manager.beginTransaction().replace(R.id.fl,fal.get(1)).commit(); break; case R.id.rb3: manager.beginTransaction().replace(R.id.fl,fal.get(2)).commit(); break; case R.id.rb4: manager.beginTransaction().replace(R.id.fl,fal.get(3)).commit(); break; } } }); drawer = (DrawerLayout) findViewById(R.id.drawer); ImageView img = (ImageView) findViewById(R.id.img); // getActivity(). getSupportFragmentManager().beginTransaction().replace(R.id.f1,mFragment).commit(); //关闭drawer drawer.closeDrawer(img); } private void initFragment() { F1 f1 = new F1(); F2 f2 = new F2(); F2 f3 = new F2(); F2 f4 = new F2(); fal.add(f1); fal.add(f2); fal.add(f3); fal.add(f4); }}
F1 :
public class F1 extends Fragment {//首页面使用tabLayout+viewPager实现。其它导航页面,内容自定义。 private TabLayout f1_tab; private ViewPager f1_vp; private List<Fragment> fal; private List<String> list = new ArrayList<String>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f1, container, false); f1_tab = view.findViewById(R.id.f1_tab); f1_vp = view.findViewById(R.id.f1_vp); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initData(); MyFragPageAdapter adapter = new MyFragPageAdapter(getChildFragmentManager()); f1_vp.setAdapter(adapter); // setupWithViewPager必须在ViewPager.setAdapter()之后调用 // 具体原因查看源码 f1_tab.setupWithViewPager(f1_vp); } private void initData() { fal = new ArrayList<>(); F01 f01 = new F01(); F02 f02 = new F02(); F02 f03 = new F02(); F02 f04 = new F02(); fal.add(f01); fal.add(f02); fal.add(f03); fal.add(f04); } class MyFragPageAdapter extends FragmentPagerAdapter { private int pages = 4; private Context context; private String[] datas = {"推荐", "课程", "实战", "职业路径"}; //构造必须一个FragmentManager管理器,注意也是v4里的 public MyFragPageAdapter(FragmentManager fm) { super(fm); this.context = context; } @Override public int getCount() { return pages; } @Override public Fragment getItem(int position) { /* Bundle bundle = new Bundle(); if(list.get(position).equals("推荐")){ bundle.putString("name","xbsjxw"); }else if (list.get(position).equals("课程")){ bundle.putString("name","txs"); }else if (list.get(position).equals("实战")){ bundle.putString("name","toutiao"); }else if (list.get(position).equals("职业路径")){ bundle.putString("name","news/mobile/jbgg"); } fal.get(position).setArguments(bundle);*/ return fal.get(position); } @Override public CharSequence getPageTitle(int position) { return datas[position]; } }}
F2:
public class F2 extends Fragment{ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f2, container, false); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); }}
F01:
public class F01 extends Fragment{//推荐页面中最上方实现viewPager的无限自动轮播,下方实现列表,可进行上拉加载,下拉刷新的效果。//(要求使用pullToRefreshScrollView)图中红框部分的内容不要求实现。 List<Product.DataBean> mylist = new ArrayList<>(); private ViewPager f01_vp; private PullToRefreshListView f01_pull; int currentItem; //当前页//int lastPosition = 0; //记录上次点的位置 //存放图片的集合 String [] imgs = { "http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg", "http://pic2.nipic.com/20090424/1468853_230119053_2.jpg", "http://img3.3lian.com/2013/s1/20/d/57.jpg", "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg", "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg" }; private List<ImageView> imagesList; private ScheduledExecutorService scheduledExecutorService; private PullToRefreshListView f02_pull; String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum="; //private ArrayAdapter<String> arrayAdapter; private int page = 0; private com.nostra13.universalimageloader.core.ImageLoader imageLoaderInstance; private ListView lv;//利用handler + 线程 实现无限轮播 Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg);//设置当前页面 f01_vp.setCurrentItem(currentItem); } }; private MyItemAdapter myadapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f01, container, false); f01_pull = view.findViewById(R.id.f01_pull); f01_vp = view.findViewById(R.id.f01_vp); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState);//页面中最上方实现viewPager的无限自动轮播 initData(); MyAdapter adapter = new MyAdapter(); f01_vp.setAdapter(adapter); f01_vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { //当VP滑动 设置当前页 currentItem = position; } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); ListView lv = f01_pull.getRefreshableView(); imageLoaderInstance = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); // arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, list); myadapter = new MyItemAdapter(); lv.setAdapter(myadapter); f01_pull.setMode(PullToRefreshBase.Mode.BOTH); f01_pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { mylist.clear(); getNetData(0); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { getNetData(page++); } }); getNetData(0);//请求listview接口数据 } private void getNetData(int page) { new MAsyncTask().execute(baseUrl +page); } private void initData() { imagesList = new ArrayList<>(); for (int i = 0; i<imgs.length; i++){ ImageView imageView = new ImageView(getActivity()); imageView.setMaxWidth(100); //调用显示图片 ImageLoader instance = ImageLoader.getInstance(); instance.displayImage(imgs[i], imageView, ImageLoaderUtils_circle.getDisplayImageOption()); //imageView.setImageBitmap(); // imageView.setBackgroundResource(Integer.parseInt(imgs[i])); imagesList.add(imageView); } } class MyItemAdapter extends BaseAdapter{ @Override public int getCount() { Log.e("wzq", "getCount:" + mylist.size()); return mylist.size(); } @Override public Object getItem(int i) { return mylist.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View view1 = View.inflate(getActivity(), R.layout.item1, null); TextView tv = view1.findViewById(R.id.item_tv); ImageView img = view1.findViewById(R.id.item_img); tv.setText(mylist.get(i).getSUBTITLE());// iv.setImageBitmap("url");//调用显示图片 ImageLoader instance = ImageLoader.getInstance(); instance.displayImage(mylist.get(i).getIMAGEURL(),img); return view1; } } private class MyAdapter extends PagerAdapter{ @Override public int getCount() { return imagesList.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(ViewGroup view, int position, Object object) { view.removeView(imagesList.get(position)); } @Override public Object instantiateItem(ViewGroup view, int position) { view.addView(imagesList.get(position)); return imagesList.get(position); } } @Override public void onStart() { super.onStart(); //利用线程池执行动画轮播 scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); scheduledExecutorService.scheduleWithFixedDelay( new ViewPageTask(), 2, 2, TimeUnit.SECONDS); } //图片轮播任务 private class ViewPageTask implements Runnable { @Override public void run() {//获取当前页面 currentItem = (currentItem +1)% imgs.length; handler.sendEmptyMessage(0); } } @Override public void onStop() { super.onStop(); if(scheduledExecutorService != null){ scheduledExecutorService.shutdown(); scheduledExecutorService = null; } }class MAsyncTask extends AsyncTask<String ,Void, String>{ @Override protected String doInBackground(String... strings) { return NetUtil.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> datas = product.getData(); mylist.addAll(datas); myadapter.notifyDataSetChanged(); f01_pull.onRefreshComplete(); }}}F02:
public class F02 extends Fragment{ private PullToRefreshGridView f02_pull; ArrayList<String> list = new ArrayList<>(); String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum="; private ArrayAdapter<String> arrayAdapter; private int page = 0; String[] urls = { "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg", "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg", }; private com.nostra13.universalimageloader.core.ImageLoader imageLoaderInstance; private GridView glv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f02, container, false); f02_pull = view.findViewById(R.id.f02_pull); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); glv = f02_pull.getRefreshableView(); imageLoaderInstance = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, list); glv.setAdapter(arrayAdapter); f02_pull.setMode(PullToRefreshBase.Mode.BOTH); f02_pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<GridView> pullToRefreshBase) { list.clear(); getNetData(0); } @Override public void onPullUpToRefresh(PullToRefreshBase<GridView> pullToRefreshBase) { getNetData(page++); } }); getNetData(0);//请求listview接口数据 } private void getNetData(int page) { new MAsyncTask(list, arrayAdapter,f02_pull).execute(baseUrl +page); }}
MAsyncTask:
public class MAsyncTask extends AsyncTask<String, Void, String> { private PullToRefreshGridView plv; ArrayList<String> list; private ArrayAdapter<String> arrayAdapter; public MAsyncTask(ArrayList<String> list, ArrayAdapter<String> arrayAdapter, PullToRefreshGridView plv) { this.list = list; this.arrayAdapter = arrayAdapter; this.plv = plv; } @Override protected String doInBackground(String... strings) { return NetUtil.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> datas = product.getData(); ArrayList<String> tempList = new ArrayList<>(); for (int i = 0; i < datas.size(); i++) { tempList.add(datas.get(i).getSUBTITLE()); } list.addAll(tempList); arrayAdapter.notifyDataSetChanged(); plv.onRefreshComplete(); }}
阅读全文
0 0
- mymoni3——具体代码~Activity类 + Fragfment类 的具体逻辑代码(+外部类MAsyncTask)
- mymoni3——具体代码~Activity类 + Fragfment类 的具体逻辑代码(+外部类MAsyncTask)
- mymoni3——具体代码~添加权限依赖 + 页面布局 + 封装类、工具类
- mymoni3——具体代码~添加权限依赖 + 页面布局 + 封装类、工具类
- uart的具体实现代码
- 类模板(仅简单代码,具体看笔记)
- 如何查看JAVA类库中的类的方法的具体实现代码
- axis2使用WSDL2Java把WSDL生成JAVA类的具体代码
- android上一个可追踪代码到函数具体某行的日志类
- Spring整合Hibernate中HibernateDaoSupport类的分页处理具体代码
- Jdbc--具体代码实现
- StrigTokenizer类的具体运用
- String类的具体实现
- jsp数据库操作的具体代码
- 定位Oops的具体代码行
- 定位Oops的具体代码行
- 定位oops的具体代码行
- 定位Oops的具体代码行
- json
- [js]①栈和队列~1、堆栈--数据结构回忆小笔记
- 虚函数学习二
- 7-29 修理牧场(25 分)
- Java集合之HashSet,LinkedHashSet源码分析
- mymoni3——具体代码~Activity类 + Fragfment类 的具体逻辑代码(+外部类MAsyncTask)
- java 设计模式 策略模式
- 【JavaScript学习】DOM:DocumentFragment类型
- gulp-css-wrap工具的使用——[批量为css文件扩展命名空间]
- 中国知名个人站长排行TOP91
- ajax
- mymoni3——具体代码~添加权限依赖 + 页面布局 + 封装类、工具类
- 银行卡号识别Bank Card Rec 主要功能接口说明
- HBase 常用操作