main
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" android:layout_height="match_parent" tools:context="com.example.hello.mylianxiyuekao.MainActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/frame_layout" android:layout_above="@+id/radio_group" > </FrameLayout> <RadioGroup android:id="@+id/radio_group" android:layout_alignParentBottom="true" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="40dp" > <RadioButton android:id="@+id/rb1" android:button="@null" android:gravity="center" android:clickable="true" android:padding="10dp" android:background="@drawable/radio_selector" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="match_parent" /> <RadioButton android:id="@+id/rb2" android:button="@null" android:gravity="center" android:clickable="true" android:padding="10dp" android:background="@drawable/radio_selector2" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="match_parent" /> <RadioButton android:id="@+id/rb3" android:button="@null" android:gravity="center" android:clickable="true" android:padding="10dp" android:background="@drawable/xlistview_arrow" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="match_parent" /> <RadioButton android:id="@+id/rb4" android:button="@null" android:gravity="center" android:clickable="true" android:padding="10dp" android:background="@drawable/radio_selector3" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="match_parent" /> </RadioGroup> </RelativeLayout> <RelativeLayout android:background="#ffffff" android:id="@+id/drawer_relative" android:layout_gravity="left" android:layout_width="200dp" android:layout_height="match_parent"> <ImageView android:id="@+id/image_touxiang" android:layout_centerHorizontal="true" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:layout_width="80dp" android:layout_height="80dp" /> <TextView android:layout_marginTop="80dp" android:layout_width="match_parent" android:layout_height="40dp" android:text="客服热线"/> <TextView android:layout_marginTop="120dp" android:layout_width="match_parent" android:layout_height="40dp" android:text="客服热线"/> <TextView android:layout_marginTop="160dp" android:layout_width="match_parent" android:layout_height="40dp" android:text="客服热线"/> <TextView android:layout_marginTop="200dp" android:layout_width="match_parent" android:layout_height="40dp" android:text="客服热线"/> </RelativeLayout> </android.support.v4.widget.DrawerLayout> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ home<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#135" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.TabLayout android:id="@+id/tab" app:tabGravity="center" app:tabIndicatorColor="@color/colorAccent" app:tabMode="scrollable" app:tabSelectedTextColor="@color/colorPrimaryDark" app:tabTextColor="@color/colorPrimary" android:layout_width="match_parent" android:layout_height="40dp"> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> </LinearLayout>++++++++++++++++++++++++++++++++++++++++++++++++++++++
faxian<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#f89" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ hushen<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#a18" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/hushen_list_view" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF" > </com.handmark.pulltorefresh.library.PullToRefreshListView> </LinearLayout>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bankuai<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#f89" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/bankuai_list_view" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF" > </com.handmark.pulltorefresh.library.PullToRefreshListView> </LinearLayout>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
zhishu<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#e06" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/zhishu_list_view" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF" > </com.handmark.pulltorefresh.library.PullToRefreshListView> </LinearLayout> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ganggu<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#a44" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/ganggu_list_view" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF" > </com.handmark.pulltorefresh.library.PullToRefreshListView> </LinearLayout>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
item_img_layout<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:padding="10dp" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image_view" android:layout_width="100dp" android:layout_height="100dp" /> <TextView android:id="@+id/text_title" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" /> </LinearLayout>++++++++++++++++++++++++++++++++++++++++++++++++++++++item_text_layout<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dp" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text_title" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content" /> </LinearLayout>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++public class MainActivity extends AppCompatActivity { private DrawerLayout dl; private RelativeLayout rl; private List<DataDataBean.DataBean> list = new ArrayList<>(); private MyAdapter myAdapter; private int page_num=1; private RadioGroup radioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); radioGroup = (RadioGroup) findViewById(R.id.radio_group); dl = (DrawerLayout) findViewById(R.id.drawer_layout); //主内容区域的布局 //抽屉布局 rl = (RelativeLayout) findViewById(R.id.drawer_relative); ImageView imageView=(ImageView)findViewById(R.id.image_touxiang) ; imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dl.closeDrawer(rl); } }); //设置点击事件 //抽屉的监听事件 dl.setDrawerListener(new DrawerLayout.DrawerListener() { /** * * @param drawerView * @param slideOffset 表示的抽屉拖出来的宽度,,像素值 */ @Override public void onDrawerSlide(View drawerView, float slideOffset) { } /** * 抽屉打开了 * @param drawerView */ @Override public void onDrawerOpened(View drawerView) { } /** * 抽屉关闭 * @param drawerView */ @Override public void onDrawerClosed(View drawerView) { } /** * 抽屉的状态改变 * * idle -- 表示与导航视图没有交互,静止 dragging -- 表示目前有与导航视图的交互,拖拽的状态 settling -- 表示有与导航视图的交互,并且导航视图正在关闭或打开 * @param newState */ @Override public void onDrawerStateChanged(int newState) { Log.i("zhaungtai---",newState+"---"); } }); //默认显示 getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,new Fragmenthome()).commit(); radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i){ case R.id.rb1: getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,new Fragmenthome()).commit(); break; case R.id.rb2: getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,new Fragmentxiangfa()).commit(); break; case R.id.rb3: getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,new Fragmentxiazai()).commit(); break; case R.id.rb4: getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,new Fragmentuser()).commit(); break; default: break; } } }); } }++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++public class Fragmenthome extends Fragment { private TabLayout tabLayout; private ViewPager viewPager; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.home,container,false); tabLayout = view.findViewById(R.id.tab); viewPager =view.findViewById(R.id.view_pager); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<>(); list.add("沪深"); list.add("板块"); list.add("指数"); list.add("港股"); list.add("新三板"); list.add("商品"); list.add("更新"); //设置适配器 viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) { @Override public CharSequence getPageTitle(int position) { return list.get(position); } @Override public Fragment getItem(int position) { Fragment fragment = null; switch (position) { case 0: fragment = new Fragmenthushen(); break; case 1: fragment = new Fragmentbankuai(); break; case 2: fragment = new Fragmentzhishu(); break; case 3: fragment = new Fragmentganggu(); break; case 4: fragment = new Fragmentxinsanban(); break; case 6: fragment = new Fragmentgengxin(); break; case 5: fragment = new Fragmentsangpin(); break; default: break; } return fragment; } @Override public int getCount() { return list.size(); } }); //关联 tabLayout.setupWithViewPager(viewPager); viewPager.setOffscreenPageLimit(list.size()); } }++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++public class Fragmentuser extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.user,container,false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } }++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//http://mnews.gw.com.cn/wap/data/news/news/mobile/jbgg/page_1.json /** * */ public class Fragmenthushen extends Fragment { private PullToRefreshListView refreshListView; private List<DataDataBean.DataBean> list = new ArrayList<>(); private MyAdapter myAdapter; private int page_num = 1; private ILoadingLayout startLabels; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.hushen_view,container,false); refreshListView = view.findViewById(R.id.hushen_list_view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //1.设置listView的适配器 getDataFromNet(); //2.设置刷新模式 /*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */ refreshListView.setMode(PullToRefreshBase.Mode.BOTH); //3.通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别(也就是设置向下拉的时候头部里面显示的文字) //此时这里设置的是下拉刷新的时候显示的文字,所以第一个设置true表示现在是刷新,第二个设置为false final ILoadingLayout startLabels = refreshListView.getLoadingLayoutProxy(true, false); startLabels.setPullLabel("下拉刷新"); startLabels.setRefreshingLabel("正在刷新..."); startLabels.setReleaseLabel("放开刷新"); ILoadingLayout endLabels = refreshListView.getLoadingLayoutProxy(false, true); endLabels.setPullLabel("上拉刷新"); endLabels.setRefreshingLabel("正在载入..."); endLabels.setReleaseLabel("放开刷新..."); //4.设置监听事件 /** * 如果Mode设置成Mode.BOTH,需要设置刷新Listener为OnRefreshListener2,并实现onPullDownToRefresh()、 * onPullUpToRefresh()两个方法。 如果Mode设置成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要设置刷新Listener为OnRefreshListener, 同时实现onRefresh()方法。 当然也可以设置为OnRefreshListener2,但是Mode.PULL_FROM_START的时候只调用onPullDownToRefresh()方法, Mode.PULL_FROM_END的时候只调用onPullUpToRefresh()方法 */ refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //下拉刷新的时候调用的方法....请求第一页的数据,清空之前的数据,然后再添加设置适配器 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { String path = "http://mnews.gw.com.cn/wap/data/news/xbsjxw/page_1.json"; NetDataUtil.getData(path, getActivity(), new JsonCallBack() { @Override public void getJsonString(String json) { JSONArray jsonArray=null; try { jsonArray = new JSONArray(json); String s = jsonArray.get(0).toString(); Log.d("TAG","7777+++++++++++++++++++++++++++++"+s); //解析 Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); //先清空一下数据 list.clear(); //添加到集合的最前边,,,,(0,,,,) list.addAll(0,dataDataBean.getData()); //设置适配器 setAdapter(); //设置适配器之后停止刷新的操作 refreshListView.onRefreshComplete(); } catch (Exception e) { e.printStackTrace(); } //可以设置刷新的时间.... // startLabels.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新 } }); } //上拉刷新的时候调用的方法..page++,然后在请求数据 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { page_num++; getDataFromNet(); } }); } /** * 获取网络数据 */ private void getDataFromNet() { String path = "http://mnews.gw.com.cn/wap/data/news/xbsjxw/page_"; //第一个参数是接口,第二个上下文,第三个回调json数据 NetDataUtil.getData(path+page_num+".json", getActivity(), new JsonCallBack() { @Override public void getJsonString(String json) { JSONArray jsonArray=null; try { jsonArray = new JSONArray(json); String s = jsonArray.get(0).toString(); Log.d("TAG","111+++++++++++++++++++++++++++++"+s); //解析 Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); //往后面添加... list.addAll(dataDataBean.getData()); //设置适配器 setAdapter(); //停止刷新 refreshListView.onRefreshComplete(); } catch (Exception e) { e.printStackTrace(); } } }); } private void setAdapter() { if (myAdapter == null){ myAdapter = new MyAdapter(getActivity(),list); refreshListView.setAdapter(myAdapter); }else { myAdapter.notifyDataSetChanged(); } } }++++++++++++++++++++++++++++++++++++++++++++++++++++++++++public class Fragmentgengxin extends Fragment { private PullToRefreshListView refreshListView; private List<LunBoBean.DataBean> list = new ArrayList<>(); private MyAdapter2 myAdapter; private int page_num = 1; private ILoadingLayout startLabels; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.gengxin_view,container,false); refreshListView = view.findViewById(R.id.gengxin_list_view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //1.设置listView的适配器 getDataFromNet(); //2.设置刷新模式 /*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */ refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //下拉刷新的时候调用的方法....请求第一页的数据,清空之前的数据,然后再添加设置适配器 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { String path = "http://mnews.gw.com.cn/wap/data/news/news/mobile/jjxw/page_1.json"; NetDataUtil.getData(path, getActivity(), new JsonCallBack() { @Override public void getJsonString(String json) { JSONArray jsonArray=null; try { jsonArray = new JSONArray(json); String s = jsonArray.get(0).toString(); Log.d("TAG","444+++++++++++++++++++++++++++++"+s); //解析 Gson gson = new Gson(); LunBoBean lunBoBean = gson.fromJson(s, LunBoBean.class); //先清空一下数据 list.clear(); //添加到集合的最前边,,,,(0,,,,) list.addAll(0,lunBoBean.getData()); //设置适配器 setAdapter(); //设置适配器之后停止刷新的操作 refreshListView.onRefreshComplete(); } catch (Exception e) { e.printStackTrace(); } //可以设置刷新的时间.... // startLabels.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新 } }); } //上拉刷新的时候调用的方法..page++,然后在请求数据 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { page_num++; getDataFromNet(); } }); } /** * 获取网络数据 */ private void getDataFromNet() { String path = "http://mnews.gw.com.cn/wap/data/news/news/mobile/jjxw/page_"; //第一个参数是接口,第二个上下文,第三个回调json数据 NetDataUtil.getData(path+page_num+".json", getActivity(), new JsonCallBack() { @Override public void getJsonString(String json) { JSONArray jsonArray=null; try { jsonArray = new JSONArray(json); String s = jsonArray.get(0).toString(); Log.d("TAG","333+++++++++++++++++++++++++++++"+s); //解析 Gson gson = new Gson(); LunBoBean lunBoBean = gson.fromJson(s, LunBoBean.class); //往后面添加... list.addAll(lunBoBean.getData()); //设置适配器 setAdapter(); //停止刷新 refreshListView.onRefreshComplete(); } catch (Exception e) { e.printStackTrace(); } } }); } private void setAdapter() { if (myAdapter == null){ myAdapter = new MyAdapter2(getActivity(),list); refreshListView.setAdapter(myAdapter); }else { myAdapter.notifyDataSetChanged(); } } }++++++++++++++++++++++++++++++++++++++++++++++++++++++++