老冯の作业

  • 作业
    • 一、MainActivity的代码
      • (1) 布局xml中
      • (2) Activity代码
    • 二、异步任务中(很重要)
    • 三、碎片中
      • (1) 具体功能代码
      • (2) 碎片布局页面
    • 四、其他功能类
      • (1) HttpUtils
      • (2) JavaBean类
      • 第二个Activity什么都没有 直接跳就OK了

作业

一、MainActivity的代码

(1) 布局xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"tools:context=".MainActivity"><android.support.v4.view.ViewPagerandroid:id="@+id/view_page"android:layout_above="@id/layout_xx"android:layout_width="match_parent"android:layout_height="match_parent"></android.support.v4.view.ViewPager><TextViewandroid:visibility="gone"android:layout_alignParentRight="true"android:gravity="center"android:background="#ff0"android:textColor="#000"android:textSize="20sp"android:id="@+id/text_time"android:text="倒计时:"android:layout_width="125dp"android:layout_height="55dp" /><Viewandroid:id="@+id/view_1"android:layout_centerInParent="true"android:layout_width="0dp"android:layout_height="0dp"/><Buttonandroid:visibility="gone"android:background="#12E0AF"android:id="@+id/button_time"android:layout_below="@id/view_1"android:layout_centerInParent="true"android:layout_marginTop="150dp"android:text="立即体验"style="?android:attr/borderlessButtonStyle"android:layout_width="wrap_content"android:layout_height="wrap_content" /><LinearLayoutandroid:orientation="horizontal"android:id="@+id/layout_xx"android:layout_alignParentBottom="true"android:layout_width="match_parent"android:layout_height="50dp"><RadioGroupandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"><RadioButtonandroid:textColor="#000"android:textSize="20sp"android:text="一"android:gravity="center"android:button="@null"android:layout_weight="1"android:id="@+id/radio_one"android:layout_width="0dp"android:layout_height="match_parent" /><RadioButtonandroid:textColor="#000"android:textSize="20sp"android:text="二"android:gravity="center"android:button="@null"android:id="@+id/radio_two"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent" /></RadioGroup></LinearLayout></RelativeLayout>

(2) Activity代码

public class MainActivity extends AppCompatActivity {//下载地址private String path = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1";//寻找控件private ViewPager viewPager;private Button button_time;private TextView textView_time;//数据源private List<BlankFragment> list = new ArrayList<>();private List<JavaBean.DataBean> dataList = new ArrayList<>();//计数专用private int index = 0;private int sendTime = 5;//fragment管理者private FragmentManager manager;//两个计时器private Timer timer1;private Timer timer;//主线程private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {switch (msg.what){case 1:viewPager.setCurrentItem(index);++index;if(index == list.size()){index = 0;}break;case 2://给textView赋值textView_time.setText("倒计时:"+sendTime+"秒");//秒数倒计时sendTime --;//秒数为-1时跳转if(sendTime == -1){Intent intent = new Intent(MainActivity.this, Main2Activity.class);startActivity(intent);timer1.cancel();finish();}break;}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();}private void initData() {//异步任务的执行new MyAsyncTask(dataList,list,viewPager,manager).execute(path);}private void initView() {//控件赋值manager = getSupportFragmentManager();viewPager = findViewById(R.id.view_page);textView_time = findViewById(R.id.text_time);button_time = findViewById(R.id.button_time);//时间器timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {handler.sendEmptyMessage(1);}},0,1000);//viewPager的监听器viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int i, float v, int i1) {}//监听@Overridepublic void onPageSelected(int i) {if(i == list.size()-1){//寻找main.xml中的布局idtextView_time.setVisibility(View.VISIBLE);button_time.setVisibility(View.VISIBLE);//执行到这步的时候将timer取消执行timer.cancel();//timer1执行,用于倒计时跳转timer1 = new Timer();timer1.schedule(new TimerTask() {@Overridepublic void run() {handler.sendEmptyMessage(2);}},0,1000);}}@Overridepublic void onPageScrollStateChanged(int i) {}});//点击直接跳转button_time.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, Main2Activity.class);startActivity(intent);timer1.cancel();finish();}});}
}

二、异步任务中(很重要)

public class MyAsyncTask extends AsyncTask<String, Void, List<JavaBean.DataBean>> {private List<JavaBean.DataBean> totalList;//字符串以及图片数据源private List<BlankFragment> list;//碎片数据源private ViewPager viewPager;//viewPager的视图private FragmentManager manager;//管理者public MyAsyncTask(List<JavaBean.DataBean> totalList, List<BlankFragment> list, ViewPager viewPager, FragmentManager manager) {this.totalList = totalList;this.list = list;this.viewPager = viewPager;this.manager = manager;}@Overrideprotected List<JavaBean.DataBean> doInBackground(String... strings) {//通过HttpUtils获取网络数据List<JavaBean.DataBean> dataBeans = HttpUtils.LoadString(strings[0]);if (dataBeans!= null && dataBeans.size() > 0) {//返回到post中return dataBeans;}return null;}@Overrideprotected void onPostExecute(List<JavaBean.DataBean> dataBeans) {if(dataBeans != null && dataBeans.size() > 0){totalList.addAll(dataBeans);for (int i = 0; i < 4; i++) {//为碎片用bundle传值BlankFragment fragment = new BlankFragment();Bundle bundle = new Bundle();bundle.putString("title",totalList.get(i).getTitle());bundle.putString("icon",totalList.get(i).getPic());
//                        bundle.putString("title","我是"+i+"个");fragment.setArguments(bundle);list.add(fragment);}//viewPager设置适配器viewPager.setAdapter(new FragmentStatePagerAdapter(manager) {//碎片@Overridepublic Fragment getItem(int i) {return list.get(i);}//视图个数@Overridepublic int getCount() {return list.size();}});}}
}

三、碎片中

(1) 具体功能代码

public class BlankFragment extends Fragment {private TextView textView_title;private ImageView imageView_pic;public BlankFragment() {// Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentView inflate = inflater.inflate(R.layout.fragment_blank, container, false);textView_title = inflate.findViewById(R.id.text_title);imageView_pic = inflate.findViewById(R.id.iamge_pic);Bundle bundle = getArguments();String title = bundle.getString("title");String icon = bundle.getString("icon");textView_title.setText(title);Glide.with(getActivity()).load(icon).into(imageView_pic);return inflate;}
}

(2) 碎片布局页面

<?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"tools:context=".Fragment.BlankFragment"><!-- TODO: Update blank fragment layout --><TextViewandroid:id="@+id/text_title"android:layout_marginTop="100dp"android:layout_centerHorizontal="true"android:textSize="25sp"android:textColor="#000"android:text="我是标题"android:layout_width="wrap_content"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/iamge_pic"android:layout_marginTop="100dp"android:layout_centerInParent="true"android:layout_below="@id/text_title"android:scaleType="fitXY"android:src="@mipmap/ic_launcher"android:layout_width="175dp"android:layout_height="175dp" /></RelativeLayout>

四、其他功能类

(1) HttpUtils


package com.example.day_06_07_homework.enity;import android.util.Log;import com.example.day_06_07_homework.MyBean.JavaBean;
import com.google.gson.Gson;import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;public class HttpUtils {public static List<JavaBean.DataBean> LoadString(String s){InputStream is = null;ByteArrayOutputStream bos = null;HttpURLConnection connection;try {URL url = new URL(s);connection = (HttpURLConnection) url.openConnection();Log.i("TAG", "doInBackground: ->"+connection.getResponseCode());if(connection.getResponseCode() == 200){is = connection.getInputStream();bos = new ByteArrayOutputStream();int len = 0;byte[] b = new byte[1024];while((len = is.read(b)) != -1){bos.write(b, 0, len);}JavaBean javaBean = new Gson().fromJson(bos.toString(), JavaBean.class);return javaBean.getData();}} catch (Exception e) {e.printStackTrace();}return null;}}

(2) JavaBean类

package com.example.day_06_07_homework.MyBean;import java.util.List;public class JavaBean {/*** ret : 1* data : [{"id":"8289","title":"油焖大虾","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg","collect_num":"1669","food_str":"大虾 葱 生姜 植物油 料酒","num":1669},{"id":"2127","title":"四川回锅肉","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2127.jpg","collect_num":"1591","food_str":"猪肉 青蒜 青椒 红椒 姜片","num":1591},{"id":"30630","title":"超简单芒果布丁","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/31/30630.jpg","collect_num":"1544","food_str":"QQ糖 牛奶 芒果","num":1544},{"id":"9073","title":"家常红烧鱼","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9073.jpg","collect_num":"1425","food_str":"鲜鱼 姜 葱 蒜 花椒","num":1425},{"id":"10097","title":"家常煎豆腐","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10097.jpg","collect_num":"1419","food_str":"豆腐 新鲜红椒 青椒 葱花 油","num":1419},{"id":"10509","title":"水煮肉片","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10509.jpg","collect_num":"1341","food_str":"瘦猪肉 生菜 豆瓣酱 干辣椒 花椒","num":1341},{"id":"46968","title":"红糖苹果银耳汤","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/47/46968.jpg","collect_num":"1252","food_str":"银耳 苹果 红糖","num":1252},{"id":"10191","title":"麻婆豆腐","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10191.jpg","collect_num":"1221","food_str":"豆腐 肉末 生抽 白糖 芝麻油","num":1221},{"id":"2372","title":"皮蛋瘦肉粥","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2372.jpg","collect_num":"1151","food_str":"大米 皮蛋 猪肉 油条 香葱","num":1151},{"id":"2166","title":"蚂蚁上树","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2166.jpg","collect_num":"1144","food_str":"红薯粉 肉 姜 蒜 花椒","num":1144}]*/private int ret;private List<DataBean> data;@Overridepublic String toString() {return "JavaBean{" +"ret=" + ret +", data=" + data +'}';}public int getRet() {return ret;}public void setRet(int ret) {this.ret = ret;}public List<DataBean> getData() {return data;}public void setData(List<DataBean> data) {this.data = data;}public static class DataBean {/*** id : 8289* title : 油焖大虾* pic : http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg* collect_num : 1669* food_str : 大虾 葱 生姜 植物油 料酒* num : 1669*/private String id;private String title;private String pic;private String collect_num;private String food_str;private int num;@Overridepublic String toString() {return "DataBean{" +"id='" + id + '\'' +", title='" + title + '\'' +", pic='" + pic + '\'' +", collect_num='" + collect_num + '\'' +", food_str='" + food_str + '\'' +", num=" + num +'}';}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getPic() {return pic;}public void setPic(String pic) {this.pic = pic;}public String getCollect_num() {return collect_num;}public void setCollect_num(String collect_num) {this.collect_num = collect_num;}public String getFood_str() {return food_str;}public void setFood_str(String food_str) {this.food_str = food_str;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}}
}

第二个Activity什么都没有 直接跳就OK了

Day11_FragmentViewPager_作业相关推荐

  1. LeetCode简单题之在既定时间做作业的学生人数

    题目 给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间. 已知,第 i 名学生在 startTime[i] 时开始写作业 ...

  2. 作业函数的定义与调用

    作业函数的定义与调用 在 OneFlow 中,将训练.预测任务封装在一个函数中,统称为作业函数(job function),作业函数联系用户的业务逻辑与 OneFlow 管理的计算资源. 在 OneF ...

  3. 华东理工大学计算机应用基础,最新华东理工大学计算机应用基础网上作业及全部答案...

    精品文档 华东理工大学计算机应用基础网上作业及全部答案 2012计算机应用基础答案: 一.选择题 1.文件夹是用来对应用程序.文件进行分组的,以下说法中()正确.答:一个文件夹内可以包含文件.应用程序 ...

  4. 《小团团团队》第五次作业:项目需求分析改进与系统设计

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验九 团队作业5-团队项目需求改进与系统设计 团队名称 小团团团队 作业学习目标 (1)掌握面向对象需求分析方法:(2) ...

  5. 2017级面向对象程序设计 作业三

    Deadline:2018-05-13 22:00pm 题目升级 一栋10层的大楼(楼层编号1-10),设3台无限载重的电梯,初始时电梯停在1层.其中:1号电梯只能停留在奇数层,2号电梯可以各层都停留 ...

  6. 201621123068 作业08-集合

    1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的<contains>源代码 答:源代码 public boolean contains ...

  7. 代码管理和版本管理的作业流程以及规范是怎样的?

    代码管理和版本管理的作业流程以及规范是怎样的? 代码管理和版本管理的作业流程以及规范是怎样的?下面以文档的形式进行详细分析,希望能够给予测试人员一些帮助和指导. 本文目的 本文试图提供一套有效进行代码 ...

  8. 结队项目——第一次作业

    By: 031502220 计算机二班 李自强031502344 计算机三班 郑世强 Table of Contents 一 需求分析:二 具体设计:三 系统功能说明:四 产品优劣势分析:五 PSP: ...

  9. 第三次作业+105032014085

    对修正后第2次作业+105032014141的单元测试 1.修正后的流程图 2.测试用例设计 3.单元测试框架 1 import static org.junit.Assert.*; 2 3 impo ...

最新文章

  1. Linux上隐藏进程名(初级版)
  2. Web服务器和应用程序服务器有什么区别
  3. jQuery中ajax的触发时机,javascript - 如何在启动Ajax查询的jQuery中触发方法change() - 堆栈内存溢出...
  4. 【图文详解】在电脑中打开.properties配置文件时会生成一个空的名为Java的文件问题
  5. mysql8支持myISAM_mysql8 参考手册--优化MyISAM表
  6. 信息学奥赛C++语言:百钱买百鸡
  7. flutter -------- GridView的使用
  8. .Net MVC 自定义Action类型,XmlAction,ImageAction等
  9. String、StringBuffer 、StringBuilder 的区别(转)
  10. Java随机数的创建
  11. 网络科技行业再续签 易趋云助力搭建高效项目管理云平台
  12. 请正视抑郁症(附Zung氏抑郁自评量表(SDS))
  13. QQ(腾讯)微云网盘快速上传,快速下载方案
  14. dmp标签_一种基于DMP标签的管理平台及方法与流程
  15. 【UV打印机】PrintExp打印软件教程(三)-文件和打印
  16. 如何将word文档内容在网页显示方法
  17. 兼容iOS 10 _升级xcode8_适配(一)
  18. 使用Qt开发中国象棋(六):将军和死棋检测
  19. css动画其他div,删除另一个div时的CSS3 Transition动画
  20. 免费、高清、无版权图片都从哪里找?

热门文章

  1. ansible命令行常用模块
  2. PyQt QTableWidget 表格控件的使用
  3. BZOJ 3131 [Sdoi2013]淘金
  4. 绩效面谈中的优质提问(一)
  5. Java时间和空间复杂度
  6. particles 粒子效果
  7. [附源码]java毕业设计 宠物医院管理系统
  8. 简易音乐播放器(js,html,css实现)
  9. MSA测量系统分析基本概述-青创智通
  10. 计算机主机ip地址题,(完整版)IP地址划分测试题