RadioButton+Fragment和XlistView及多条目加载
来源:互联网 发布:域名注册是免费么? 编辑:程序博客网 时间:2024/06/03 22:28
布局控件
Activity_main:
<?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="com.example.yuekao1.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/dvp" android:layout_width="match_parent" android:layout_height="620dp"> </android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/dvp" android:orientation="horizontal"> <RadioGroup android:id="@+id/rg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/dvp" android:orientation="horizontal"> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="30dp" android:button="@null" android:gravity="center" android:text="漫画" android:textSize="20dp" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="30dp" android:button="@null" android:gravity="center" android:text="发现" android:textSize="20dp" /> <RadioButton android:id="@+id/radio3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="30dp" android:button="@null" android:gravity="center" android:text="v社区" android:textSize="20dp" tools:layout_editor_absoluteX="199dp" tools:layout_editor_absoluteY="463dp" /> <RadioButton android:id="@+id/radio4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="30dp" android:button="@null" android:gravity="center" android:text="我们" android:textSize="20dp" /> </RadioGroup> </LinearLayout></RelativeLayout>
Fragment1:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.bawei.wzq.wzlibrary.view.XListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/xlv"> </com.bawei.wzq.wzlibrary.view.XListView></LinearLayout>
item_xlv:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="1"> <ImageView android:id="@+id/imageView" android:layout_width="100dp" android:layout_height="100dp" app:srcCompat="@mipmap/ic_launcher" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="31dp"/></LinearLayout>
Item_xvp:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="150dp" android:id="@+id/xvp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> </android.support.v4.view.ViewPager> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="30dp" android:id="@+id/ll" android:layout_alignBottom="@+id/xvp" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"></LinearLayout></RelativeLayout>
MainActivity:
package com.example.yuekao1;import android.graphics.Color;import android.os.Bundle;import android.support.annotation.IdRes;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.widget.RadioButton;import android.widget.RadioGroup;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private ViewPager dvp; private RadioGroup rg; private RadioButton radio1; private RadioButton radio2; private RadioButton radio3; private RadioButton radio4; ArrayList<Fragment> fragList = new ArrayList<>(); ArrayList<RadioButton> rblist = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initadd(); MAdapter adapter = new MAdapter(getSupportFragmentManager()); dvp.setAdapter(adapter); dvp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { rg.check(position); for (int i = 0; i <rblist.size() ; i++) { RadioButton button = rblist.get(i); if(i==position) { button.setTextColor(Color.RED); }else { button.setTextColor(Color.BLACK); } } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { for (int j = 0; j <rblist.size() ; j++) { int id = rblist.get(j).getId(); if(i==id) { dvp.setCurrentItem(j); } } } }); } private void initadd() { dvp = (ViewPager)findViewById(R.id.dvp); rg = (RadioGroup)findViewById(R.id.rg); radio1 = (RadioButton)findViewById(R.id.radio1); radio2 = (RadioButton)findViewById(R.id.radio2); radio3 = (RadioButton)findViewById(R.id.radio3); radio4 = (RadioButton)findViewById(R.id.radio4); rblist.add(radio1); rblist.add(radio2); rblist.add(radio3); rblist.add(radio4); Fragment1 f1 = new Fragment1(); Fragment2 f2 = new Fragment2(); Fragment3 f3 = new Fragment3(); Fragment4 f4 = new Fragment4(); fragList.add(f1); fragList.add(f2); fragList.add(f3); fragList.add(f4); } private class MAdapter extends FragmentPagerAdapter { public MAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragList.get(position); } @Override public int getCount() { return fragList.size(); } }}
Fragment1:
package com.example.yuekao1;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.bawei.wzq.wzlibrary.view.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class Fragment1 extends Fragment implements XListView.IXListViewListener { private View view; private MAdaptet adaptet; private XListView xlv; private View view1; private ViewPager xvp; private LinearLayout ll; private StringBuilder builder; private List<GsonBean.DataBean.ComicsBean> comicsBeen; private List<GsonBean.DataBean.ComicsBean> comiList = new ArrayList<>(); ArrayList<ImageView> imgList = new ArrayList<>(); private ImageView imageView; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int item = xvp.getCurrentItem(); item++; xvp.setCurrentItem(item); sendMsg(); } }; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment1, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //初始化控件 initView(); new Asytack().execute("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"); } private void initView() { xlv = (XListView) view.findViewById(R.id.xlv); View inflate = View.inflate(getActivity(), R.layout.xlv_vp, null); xvp = (ViewPager) inflate.findViewById(R.id.xvp); ll = (LinearLayout) inflate.findViewById(R.id.ll); xlv.setXListViewListener(this); xlv.setPullLoadEnable(true); xlv.addHeaderView(inflate); } public void stopRefresh() { xlv.stopRefresh(); xlv.stopLoadMore(); xlv.setRefreshTime("刚刚"); } @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { //移除 ll.removeAllViews(); comiList.clear(); new Asytack().execute("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"); adaptet.notifyDataSetChanged(); stopRefresh(); } }, 2000); } @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { new Asytack().execute("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"); adaptet.notifyDataSetChanged(); stopRefresh(); } }, 2000); } private class Asytack extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String str = ""; while ((str = bufferedReader.readLine()) != null) { builder.append(str); } } return builder.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson = new Gson(); GsonBean gsonBean = gson.fromJson(s, GsonBean.class); comicsBeen = gsonBean.getData().getComics(); comiList.addAll(comicsBeen); adaptet = new MAdaptet(); xlv.setAdapter(adaptet); xvp.setAdapter(new MAdapter()); initdot(); xvp.setCurrentItem(1000); sendMsg(); xvp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //图片点集合 for (int i = 0; i < imgList.size(); i++) { if (position % imgList.size() == i) { imgList.get(position % imgList.size()).setImageResource(R.drawable.shi); } else { imgList.get(i).setImageResource(R.drawable.kong); } } } @Override public void onPageScrollStateChanged(int state) { } }); super.onPostExecute(s); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } private void sendMsg() { handler.sendEmptyMessageDelayed(1, 2000); } private void initdot() { if (imgList != null) { imgList.clear(); } for (int i = 0; i < comicsBeen.size(); i++) { imageView = new ImageView(getActivity()); if (i == 0) { imageView.setImageResource(R.drawable.shi); } else { imageView.setImageResource(R.drawable.kong); } LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20); params.setMargins(10, 0, 10, 0); ll.addView(imageView, params); imgList.add(imageView); } } private class MAdaptet extends BaseAdapter { private static final int TYPE1 = 0; private static final int TYPE2 = 1; @Override public int getCount() { return comiList.size(); } @Override public Object getItem(int i) { return comiList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { GsonBean.DataBean.ComicsBean bean = comiList.get(i); ViewHolder holder; ViewHolder2 holder2; int type = getItemViewType(i); switch (type) { case 0: if (view == null) { holder = new ViewHolder(); view = View.inflate(getActivity(), R.layout.item_xlv, null); holder.imageView = (ImageView) view.findViewById(R.id.imageView); holder.textView = (TextView) view.findViewById(R.id.textView); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } ImageLoader.getInstance().displayImage(bean.getCover_image_url(), holder.imageView); holder.textView.setText(bean.getTitle()); break; case 1: if (view == null) { holder2 = new ViewHolder2(); view = View.inflate(getActivity(), R.layout.item_xlv, null); holder2.imageView = (ImageView) view.findViewById(R.id.imageView); view.setTag(holder2); } else { holder2 = (ViewHolder2) view.getTag(); } ImageLoader.getInstance().displayImage(bean.getCover_image_url(), holder2.imageView); break; } return view; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return TYPE1; } else { return TYPE2; } } @Override public int getViewTypeCount() { return 2; } class ViewHolder { ImageView imageView; TextView textView; } class ViewHolder2 { ImageView imageView; } } private class MAdapter extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(getActivity()); ImageLoader.getInstance().displayImage(comicsBeen.get(position % comicsBeen.size()).getCover_image_url(), imageView); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }}
阅读全文
0 0
- RadioButton+Fragment和XlistView及多条目加载
- xlistview多条目加载
- XlistView多条目加载
- XListView多条目加载adpter
- XlistView的多条目加载
- Listview多条目加载和XListview下拉刷新控件
- 多条目加载+XlistView刷新加载更多
- 判断网络状态 fragment隐藏显示 xlistview多条目加载数据
- xlistview刷新加载+Drawlayout+多条目
- XListView之多条目加载
- XListView下拉刷新,上拉加载和ListView多条目加载
- xListView多条目加载,判断有无图片及图片缓存到sd卡
- 下拉刷新上拉加载,XListView多条目加载,TabPageIndicator
- XListView多条目加载+TabPageIndicator+下拉刷新上拉加载
- handle发送get和post请求网络数据+多条目加载+banner+xlistview+TabLayout
- ListView多条目每次加载数字加20和xlistview上拉下拉
- Xlistview多条目展示
- xlistview 多条目展示
- res目录新建文件夹不显示
- 升级到xcode9 shell脚本自动打包失败
- 函数内部属性 arguments、this 以及非继承而来的方法 call()和 apply()
- 知识
- pthread_atfork解读
- RadioButton+Fragment和XlistView及多条目加载
- 使用WebServiceStudio测试WebService接口
- 程序员之死为我们敲响的一记警钟
- ajax请求的数据存在中文乱码,如何设定编码格式
- C#委托求俩个数的和与差
- restful和http的区别
- codeforces 553E
- 快速排序C++实现
- Leetcode问题解答:3. Longest Substring Without Repeating Characters