刷新HorizontalScrollView

public class MainActivity extends AppCompatActivity {
    Fragment fragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取到控件对象
        FrameLayout fl = (FrameLayout) findViewById(R.id.fl);
        RadioGroup rg = (RadioGroup) findViewById(R.id.rg);
        //获取到FragmentManager类对象
        final FragmentManager manager = getSupportFragmentManager();
        //实例化并提交显示的事务
        fragment=new frag1();
        manager.beginTransaction().add(R.id.fl,fragment).commit();
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                //判断点击事件
                    switch(i){
                            case R.id.rb1:
                                //替换第一个Fragment提交
                            fragment=new frag1();
                            manager.beginTransaction().replace(R.id.fl,fragment).commit();
                            break;
                            case R.id.rb2:
                                //替换第二个Fragment提交
                                fragment=new frag2();
                                manager.beginTransaction().replace(R.id.fl,fragment).commit();
                            break;
                            case R.id.rb3:
                                //替换第三个Fragment提交
                                fragment=new frag3();
                                manager.beginTransaction().replace(R.id.fl,fragment).commit();
                            break;
                            case R.id.rb4:
                                //替换第四个Fragment提交
                                fragment=new frag4();
                                manager.beginTransaction().replace(R.id.fl,fragment).commit();
                            break;
                        }
            }
        });
    }

}

public class frag1 extends Fragment implements View.OnClickListener {
    String uri="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";
    private HorizontalScrollView hsl;
    private LinearLayout ly;
    private ViewPager vp;
    private List<TextView> textList;
    private String[] arr;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_frag1, container, false);
        //通过Id获取到控件
        hsl = (HorizontalScrollView) view.findViewById(R.id.hsl);
        ly = (LinearLayout) view.findViewById(R.id.ly);
        vp = (ViewPager) view.findViewById(R.id.vp);
        Button btn = view.findViewById(R.id.btn);
        //设置恩扭的点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //实例化Intent跳转到TwoActivity
                Intent intent=new Intent(getActivity(), TwoActivity.class);
                startActivity(intent);
            }
        });
        //实例化集合和数组
        arr = new String[]{"头条","社会","国内","国际","娱乐","体育","军事","科技","财经","时尚"};
        textList = new ArrayList<TextView>();
        //循环遍历创建TextView
        for (int i = 0; i < arr.length; i++) {
            TextView textView=new TextView(getActivity());
            //给TextView赋值和字体大小
            textView.setText(arr[i]);
            textView.setTextSize(20);
            //判断进行给字体赋颜色
            if(i==0){
                textView.setTextColor(Color.RED);
            }else{
                    textView.setTextColor(Color.BLACK);
            }
            //设置ID和点击事件
            textView.setId(i+10000);
            textView.setOnClickListener(this);
            //实例化LayoutParams设置上下左右边距
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);
            params.setMargins(20, 10, 20, 10);
            //添加到布局里面
            ly.addView(textView,params);
            textList.add(textView);
        }
        vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
            @Override
            public int getCount() {
                return arr.length;
            }

            @Override
            public Fragment getItem(int position) {
                return childfrag.insert(uri+(position+1));
            }
        });
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                //循环判断给文本赋值颜色
                for (int i = 0; i < textList.size(); i++) {
                    if(position==i){
                        textList.get(i).setTextColor(Color.RED);
                    }else{
                        textList.get(i).setTextColor(Color.BLACK);
                    }
                    //获取到滑的是哪个文本
                    TextView textView = textList.get(position);
                    int width = textView.getWidth();
                    // 计算该滑到什么位置
                    hsl.scrollTo((width + 20) * position, 0);
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        return view;
    }

    @Override
    public void onClick(View view) {
        //获取到id相当于获取下标设置当前显示页数
        int id = view.getId();
        vp.setCurrentItem(id-10000);
    }
}
public class childfrag extends Fragment {
    List<TextBean.DataBean> list = new ArrayList<TextBean.DataBean>();
    static String uri;
    //实例化Handler 进行刷新适配器
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            adapter.notifyDataSetChanged();
        }
    };
    private MyAdapter adapter;
    private ImageLoader instance;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_childfrag, container, false);
        //封装网络请求类来进行请求数据
        onuricline();
        ListView lv = view.findViewById(R.id.lv);
        //获取到全局配置的ImageLoader
        instance = ImageLoader.getInstance();
        //实例化适配器并给ListView设置适配器
        adapter = new MyAdapter();
        lv.setAdapter(adapter);
        return view;
    }

    private void onuricline() {
        new Thread(){
            @Override
            public void run() {
                super.run();
                try {
                    //实例化URL
                    URL url = new URL(uri);
                    //获取到HttpURLConnection对象
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                    //获取到InputStream对象
                    InputStream inputStream = urlConnection.getInputStream();
                    //实例化StringBuffer和BufferedReader
                    StringBuffer stringBuffer = new StringBuffer();
                    BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));
                    String line=null;
                    //循环获取每一行数据
                    while ((line=br.readLine())!=null){
                        stringBuffer.append(line);
                    }
                    //实例化Gson并把它转成JavaBean类
                    Gson gson=new Gson();
                    TextBean textBean = gson.fromJson(stringBuffer.toString(), TextBean.class);
                    //把值赋给外面的大集合
                    List<TextBean.DataBean> data = textBean.getData();
                    list.addAll(data);
                    //发送Message刷新适配器
                    Message msg=new Message();
                    handler.sendMessage(msg);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }.start();
    }

    public static Fragment insert(String aa){
        //实例化本身
        childfrag cd=new childfrag();
        //获取到uri地址赋给全局变量
        uri=aa;
        return cd;
}
class MyAdapter extends BaseAdapter{

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

    @Override
    public Object getItem(int i) {
        return null;
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if(view==null){
            view=View.inflate(getActivity(),R.layout.activity_list,null);
        }
        //获取到控件并给控件赋值
        ImageView imageView = view.findViewById(R.id.iv);
        TextView textView = view.findViewById(R.id.tv);
        textView.setText(list.get(i).getTITLE());
        instance.displayImage((String)list.get(i).getIMAGEURL(),imageView,Image.getoptions());
        return view;
    }
}
}
//定义图片配置类
 class Image {
    public static DisplayImageOptions getoptions(){
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//设置允许访问到内存中
                .cacheOnDisk(true)//设置可以允许访问到磁盘中
                .build();
        return options;
    }

}
public class TwoActivity extends AppCompatActivity {
    List<String> list1=new ArrayList<String>();
    List<String> list2=new ArrayList<String>();
    private MyAdapter1 adapter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        //获取到控件
        GridView gv1 = (GridView) findViewById(R.id.gv1);
        GridView gv2 = (GridView) findViewById(R.id.gv2);
        //封装数据的集合
        indata();
        //实例化适配器并设置
        adapter = new MyAdapter1();
        gv1.setAdapter(adapter);
        MyAdapter2 adapter2=new MyAdapter2();
        gv2.setAdapter(adapter2);
        //设置点击事件
        gv2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //添加数据刷新集合
                list1.add(list2.get(i));
                adapter.notifyDataSetChanged();
            }
        });
    }

    private void indata() {
        list1.add("头条");
        list1.add("社会");
        list1.add("国内");
        list1.add("国际");
        list1.add("娱乐");
        list1.add("体育");
        list1.add("军事");
        list1.add("科技");
        list1.add("财经");
        list1.add("时尚");
        for (int i = 0; i <20 ; i++) {
            list2.add("+李新阳"+i);
        }
    }

    class MyAdapter1 extends BaseAdapter{

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

        @Override
        public Object getItem(int i) {
            return null;
        }

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

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            //获取到TextView进行赋值
            TextView textView=new TextView(TwoActivity.this);
            textView.setText(list1.get(i));
            textView.setTextSize(15);
            return textView;
        }
    }
    class MyAdapter2 extends BaseAdapter{

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

        @Override
        public Object getItem(int i) {
            return null;
        }

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

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            //获取到TextView进行赋值
            TextView textView = new TextView(TwoActivity.this);
            textView.setText(list2.get(i));
            textView.setTextSize(15);

            return textView;
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值