第二周作业第三题

引导页mainActivity

package com.example.day1013_2;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.TextView;

import com.example.day1013_2.Adapter.MyFragmentAdapter;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

    private TabLayout mainTablayout;
    private RadioButton mainRadionPerson;
    private RadioButton mainRadionMeeage;
    private RadioButton mainRadionPhone;
    private RadioButton mainRadionCramme;
    private TextView mainTextTime;
    private Button mainButtonIntent;
    private FragmentManager manager;
    private FragmentTransaction fragmentTransaction;
    private List<Fragment> fragmentList = new ArrayList<>();
    private ViewPager mainViewPager;
    private List<String> titleList=new ArrayList<>();
    //倒计时
    private Timer timer1=new Timer();
    private int index=5;
    //viewpager滚动
    private Timer timer2=new Timer();
    private int index2=0;

    private Handler handler=new Handler();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mainTextTime = (TextView) findViewById(R.id.main_text_time);
        mainButtonIntent = (Button) findViewById(R.id.main_button_intent);
        mainTablayout = (TabLayout) findViewById(R.id.main_tablayout);
        mainRadionPerson = (RadioButton) findViewById(R.id.main_radion_person);
        mainRadionMeeage = (RadioButton) findViewById(R.id.main_radion_meeage);
        mainRadionPhone = (RadioButton) findViewById(R.id.main_radion_phone);
        mainRadionCramme = (RadioButton) findViewById(R.id.main_radion_cramme);
        mainViewPager = (ViewPager) findViewById(R.id.main_viewPager);
        manager = getSupportFragmentManager();
        fragmentTransaction = manager.beginTransaction();
//        Fragment1Person fragment1Person = new Fragment1Person();
        Fragment2Message fragment2Message_four = new Fragment2Message();
        Fragment2Message fragment2Message_one = new Fragment2Message();
        Fragment2Message fragment2Message_two = new Fragment2Message();
        Fragment2Message fragment2Message_three = new Fragment2Message();
        //将fragment添加进集合
        fragmentList.add(fragment2Message_four);
        fragmentList.add(fragment2Message_one);
        fragmentList.add(fragment2Message_two);
        fragmentList.add(fragment2Message_three);
        for (int i = 1; i < 5; i++) {
            titleList.add("第"+i+"个");
        }

        //提交
        fragmentTransaction.commit();
        //给ViewPager设置适配器  myfragmentAdapter是外部类的适配器
        MyFragmentAdapter myFragmentAdapter=new MyFragmentAdapter(getSupportFragmentManager(),fragmentList,titleList);
        mainViewPager.setAdapter(myFragmentAdapter);
        //将viewpager和layout绑定在一起
        mainTablayout.setupWithViewPager(mainViewPager);

        //fragment滑动
        timer2.schedule(new TimerTask() {
            @Override
            public void run() {
                 handler.post(new Runnable() {
                     @Override
                     public void run() {
                        mainViewPager.setCurrentItem(index2);
                        if (index2==fragmentList.size()){
                            mainButtonIntent.setVisibility(View.VISIBLE);
                            mainTextTime.setVisibility(View.VISIBLE);
                            timer2.cancel();
                        }
                        index2++;
                     }
                 });
            }
        },0,3000);
        mainButtonIntent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                startActivity(intent);
                timer1.cancel();
                finish();
            }
        });
        //监听viewPager
        mainViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
            }

            @Override
            public void onPageSelected(int i) {
                if (i==titleList.size()-1) {
                    //倒计时
                    timer1.schedule(new TimerTask() {
                        @Override
                        public void run() {
                            handler.post(new Runnable() {
                                @Override
                                public void run() {
                                    mainTextTime.setText("倒计时" + index + "秒");
                                    if (index == 0) {
                                        Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                                        startActivity(intent);
                                        timer1.cancel();
                                        finish();
                                    }
                                    index--;
                                }
                            });
                        }
                    }, 0, 1000);
                }
            }
            @Override
            public void onPageScrollStateChanged(int i) {
            }
        });


    }
}

首页Activity

package com.example.day1013_2;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;

import com.example.day1013_2.Adapter.MyFragmentAdapter;

import java.util.ArrayList;
import java.util.List;

public class Main2Activity extends AppCompatActivity {
    private TabLayout main2Tablayout;
    private ViewPager main2ViewPager;
    private RadioButton main2RadionPerson;
    private RadioButton main2RadionMeeage;
    private RadioButton main2RadionPhone;
    private RadioButton main2RadionCramme;
    private FragmentManager manager;
    private FragmentTransaction fragmentTransaction;
    private List<Fragment> fragmentList = new ArrayList<>();
    private List<String> titleList=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        main2Tablayout = (TabLayout) findViewById(R.id.main2_tablayout);
        main2ViewPager = (ViewPager) findViewById(R.id.main2_viewPager);
        main2RadionPerson = (RadioButton) findViewById(R.id.main2_radion_person);
        main2RadionMeeage = (RadioButton) findViewById(R.id.main2_radion_meeage);
        main2RadionPhone = (RadioButton) findViewById(R.id.main2_radion_phone);
        main2RadionCramme = (RadioButton) findViewById(R.id.main2_radion_cramme);

        manager = getSupportFragmentManager();
        fragmentTransaction = manager.beginTransaction();
        Fragment1Person fragment1Person = new Fragment1Person();
        Fragment2Message fragment2Message_one = new Fragment2Message();
        Fragment2Message fragment2Message_two = new Fragment2Message();
        Fragment2Message fragment2Message_three = new Fragment2Message();
        //将fragment添加进集合
        fragmentList.add(fragment1Person);
        fragmentList.add(fragment2Message_one);
        fragmentList.add(fragment2Message_two);
        fragmentList.add(fragment2Message_three);
        for (int i = 1; i < 5; i++) {
            titleList.add("第"+i+"个");
        }

        //提交
        fragmentTransaction.commit();
        //给ViewPager设置适配器  myfragmentAdapter是外部类的适配器
        MyFragmentAdapter myFragmentAdapter=new MyFragmentAdapter(getSupportFragmentManager(),fragmentList,titleList);
        main2ViewPager.setAdapter(myFragmentAdapter);
        //将viewpager和layout绑定在一起
        main2Tablayout.setupWithViewPager(main2ViewPager);



    }
}

fragment1

package com.example.day1013_2;


import android.Manifest;
import android.app.DatePickerDialog;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Calendar;


/**
 * A simple {@link Fragment} subclass.
 */
public class Fragment1Person extends Fragment {

    private Button fragmentButtonWriteSD;
    private Button fragmentButtonCalender;
    private Button fragmentButtonReadSD;
    private TextView fragmentText;
    private String path="http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&act=column&ctype=4";
    private File direction;
    private File file;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_fragment1_person, container, false);
        fragmentButtonWriteSD = (Button) inflate.findViewById(R.id.fragment_button_writeSD);
        fragmentButtonCalender = (Button) inflate.findViewById(R.id.fragment_button_calender);
        fragmentButtonReadSD = (Button) inflate.findViewById(R.id.fragment_button_readSD);
        fragmentText = (TextView) inflate.findViewById(R.id.fragment_text);

        //初始化file
        direction= Environment.getExternalStorageDirectory();
        file=new File(direction,"mogu.txt");
        //动态权限
        requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},110);

        //存入sd卡
        fragmentButtonWriteSD.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new MyThread().start();
                Toast.makeText(getActivity(), "存入SD卡成功", Toast.LENGTH_SHORT).show();
            }
        });
        //从SD卡中取出
        fragmentButtonReadSD.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                try {
                    FileInputStream inputStream=new FileInputStream(file);
                    int len=0;
                    byte[]bytes=new byte[1024];
                    while ((len=inputStream.read(bytes))!=-1){
                        fragmentText.setText(new String(bytes,0,len));
                    }
                    if (fragmentText.getText().toString()!=null){
                        Toast.makeText(getActivity(), "写入sd卡成功", Toast.LENGTH_SHORT).show();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        //日历按钮
        fragmentButtonCalender.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar calendar=Calendar.getInstance();
                new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                        Toast.makeText(getActivity(), "您选择了:"+year+"年"+(month+1)+"月"+dayOfMonth+"日", Toast.LENGTH_SHORT).show();
                    }
                },calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();
            }
        });

        return inflate;
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode==110){
            if (permissions!=null&&grantResults[0]== PackageManager.PERMISSION_GRANTED){
                Toast.makeText(getActivity(), "获取权限成功", Toast.LENGTH_SHORT).show();
            }
        }else {
            Toast.makeText(getActivity(), "获取权限失败", Toast.LENGTH_SHORT).show();
            getActivity().finish();
        }
    }

    private class MyThread extends Thread{
        @Override
        public void run() {
            super.run();
            String jsonString = HttpUtils.loadUrl(path);
            try {
                FileOutputStream outputStream=new FileOutputStream(file);
                outputStream.write(jsonString.getBytes());
                outputStream.flush();
                outputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

fragement2

package com.example.day1013_2;


import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;

import com.example.day1013_2.Adapter.MyListAdapter;
import com.google.gson.Gson;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;


/**
 * A simple {@link Fragment} subclass.
 */
public class Fragment2Message extends Fragment {

    private List<JavaBean> lists=new ArrayList<>();
    private ListView fragment2ListView;
    private MyListAdapter myListAdapter;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_fragment2_message, container, false);
        fragment2ListView = (ListView) inflate.findViewById(R.id.fragment2_listView);


        File directory = Environment.getDataDirectory();
        File file = new File(directory, "mogu.txt");

        try {
            FileInputStream inputStream=new FileInputStream(file);
            int len=0;
            byte[]bytes=new byte[1024];
            while ((len=inputStream.read(bytes))!=-1){
                Gson gson = new Gson();
                JavaBean javaBean = gson.fromJson(new String(bytes, 0, len), JavaBean.class);
                lists.add(javaBean);
                myListAdapter.notifyDataSetChanged();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        myListAdapter=new MyListAdapter(getActivity(),lists);
        fragment2ListView.setAdapter(myListAdapter);

        return inflate;
    }


}

Adapter

fragmentAdapter

package com.example.day1013_2.Adapter;

import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

import java.util.List;

public class MyFragmentAdapter extends FragmentStatePagerAdapter {


   private List<Fragment> fragmentList;
   private List<String> titleList;

    public MyFragmentAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> titleList) {
        super(fm);
        this.fragmentList = fragmentList;
        this.titleList = titleList;
    }

    @Override
    public Fragment getItem(int i) {
        return fragmentList.get(i);
    }

    @Override
    public int getCount() {
        return fragmentList.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return titleList.get(position);

    }
}

ListAdapter

package com.example.day1013_2.Adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.day1013_2.JavaBean;
import com.example.day1013_2.R;

import java.util.List;

public class MyListAdapter extends BaseAdapter {

    private Context context;
    private List<JavaBean> lists;
    private LayoutInflater layoutInflater;

    public MyListAdapter(Context context, List<JavaBean> lists) {
        this.context = context;
        this.lists = lists;
        layoutInflater=LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return lists.size();
    }

    @Override
    public Object getItem(int position) {
        return lists.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder=null;
        if (convertView==null){
            holder=new ViewHolder();
            convertView=layoutInflater.inflate(R.layout.item_fragment2_layout,null);
            holder.imageView=convertView.findViewById(R.id.fragment2_item_image);
            holder.textView=convertView.findViewById(R.id.fragment2_item_text);
            convertView.setTag(holder);
        }else {
            holder= (ViewHolder) convertView.getTag();
        }
        Glide.with(context).load(lists.get(position).getThumb()).into(holder.imageView);
        holder.textView.setText(lists.get(position).getName());
        return convertView;
    }
    static class  ViewHolder{
        private ImageView imageView;
        private TextView textView;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值