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; } } }
刷新HorizontalScrollView
最新推荐文章于 2019-12-26 10:20:31 发布