lianxi1
来源:互联网 发布:人体检测软件 编辑:程序博客网 时间:2024/06/06 00:33
activity main xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/rg"> </FrameLayout> <RadioGroup android:id="@+id/rg" android:layout_width="match_parent" android:layout_height="40dp" android:layout_alignParentBottom="true" android:orientation="horizontal"> <RadioButton android:id="@+id/rb1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/yes" android:button="@null" android:checked="true" android:gravity="center" android:padding="10dp" android:text="首页" /> <RadioButton android:id="@+id/rb2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/yes" android:button="@null" android:gravity="center" android:padding="10dp" android:text="发现" /> <RadioButton android:id="@+id/rb3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/yes" android:button="@null" android:gravity="center" android:padding="10dp" android:text="下载" /> <RadioButton android:id="@+id/rb4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/yes" android:button="@null" android:gravity="center" android:padding="10dp" android:text="我的" /> </RadioGroup> </RelativeLayout> <LinearLayout android:background="#ffffff" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="left" android:orientation="vertical"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="50dp" android:src="@mipmap/ic_launcher" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="20dp" android:text="钱包" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="20dp" android:text="行程记录" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="20dp" android:text="友好邀请" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="20dp" android:text="设置" /> </LinearLayout></android.support.v4.widget.DrawerLayout>
fragment—首页xml
<?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:orientation="vertical"> <android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="55dp" app:tabGravity="center" app:tabIndicatorColor="@color/colorAccent" app:tabMode="scrollable" app:tabSelectedTextColor="@color/colorPrimaryDark" app:tabTextColor="@color/colorPrimary"> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager></LinearLayout>
MainActivity.java
package com.example.zhoukao_03;import android.os.Bundle;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.widget.RadioGroup;import com.example.zhoukao_03.fragment.FragmentFaXian;import com.example.zhoukao_03.fragment.FragmentShouYe;import com.example.zhoukao_03.fragment.FragmentWoDe;import com.example.zhoukao_03.fragment.FragmentXiaZai;public class MainActivity extends AppCompatActivity { private DrawerLayout drawer; private RadioGroup rg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawer = (DrawerLayout) findViewById(R.id.drawer); rg = (RadioGroup) findViewById(R.id.rg); getSupportFragmentManager().beginTransaction().replace(R.id.frame,new FragmentShouYe()).commit(); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i){ case R.id.rb1: getSupportFragmentManager().beginTransaction().replace(R.id.frame,new FragmentShouYe()).commit(); break; case R.id.rb2: getSupportFragmentManager().beginTransaction().replace(R.id.frame,new FragmentFaXian()).commit(); break; case R.id.rb3: getSupportFragmentManager().beginTransaction().replace(R.id.frame,new FragmentXiaZai()).commit(); break; case R.id.rb4: getSupportFragmentManager().beginTransaction().replace(R.id.frame,new FragmentWoDe()).commit(); break; default: break; } } }); } }Fragment shouye.java
package com.example.zhoukao_03.fragment;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.example.zhoukao_03.R;import java.util.ArrayList;import java.util.List;/** * Created by lenovo on 2017/10/21. */public class FragmentShouYe extends Fragment { private TabLayout tab; private ViewPager vp; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fragment_shouye,container,false); tab = (TabLayout) view.findViewById(R.id.tab); vp = (ViewPager) view.findViewById(R.id.vp); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<>(); list.add("推荐"); list.add("课程"); list.add("实战"); list.add("职业路径"); vp.setOffscreenPageLimit(list.size()); vp.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 FragmentTuiJian(); break; case 1: fragment=new FragmentKeCheng(); break; case 2: fragment=new FragmentShiZhan(); break; case 3: fragment=new FragmentZhiYe(); break; default: break; } return fragment; } @Override public int getCount() { return list.size(); } }); tab.setupWithViewPager(vp); }} fragmenttuijian xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp" android:layout_above="@+id/linear"> </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="horizontal"> </LinearLayout> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:id="@+id/plv" android:layout_width="match_parent" android:layout_height="match_parent" ptr:ptrAnimationStyle="flip" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF"> </com.handmark.pulltorefresh.library.PullToRefreshListView></LinearLayout>
FragmentTuiJian().javapackage com.example.zhoukao_03.fragment;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import com.example.zhoukao_03.JsonCallBack;import com.example.zhoukao_03.R;import com.example.zhoukao_03.adapter.ListViewAdapter;import com.example.zhoukao_03.adapter.ViewPagerAdapter;import com.example.zhoukao_03.bbean.DataDataBean;import com.example.zhoukao_03.util.GetDataUtil;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.ILoadingLayout;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;/** * Created by lenovo on 2017/10/21. */public class FragmentTuiJian extends android.support.v4.app.Fragment { private ViewPager vp; private PullToRefreshListView plv; private List<DataDataBean.DataBean> lists=new ArrayList<>(); private ListViewAdapter lvadapter; private int page_num=1; private ILoadingLayout startLabels;private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==0){ vp.setCurrentItem(vp.getCurrentItem()+1); handler.sendEmptyMessageDelayed(0,2000); } }}; private LinearLayout linear; private List<ImageView> images; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_tuijian, container, false); vp = (ViewPager) view.findViewById(R.id.vp); plv = (PullToRefreshListView) view.findViewById(R.id.plv); linear = (LinearLayout) view.findViewById(R.id.linear); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getNet(); lunBoTu(); /*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */ plv.setMode(PullToRefreshBase.Mode.BOTH); startLabels = plv.getLoadingLayoutProxy(true, false); startLabels.setPullLabel("下拉刷新"); startLabels.setRefreshingLabel("正在拉"); startLabels.setReleaseLabel("放开刷新"); ILoadingLayout endLabels = plv.getLoadingLayoutProxy(false, true); endLabels.setPullLabel("上拉刷新"); endLabels.setRefreshingLabel("正在载入..."); endLabels.setReleaseLabel("放开刷新..."); plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { getNet(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { page_num++; GetDataUtil.getDat("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="+page_num, getActivity(), new JsonCallBack() { @Override public void getJsonString(String s) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); lists.addAll(0,dataDataBean.getData()); setAdapter(); plv.onRefreshComplete(); startLabels.setLastUpdatedLabel("上次更新时间:" + new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis()))); } }); } }); } private void lunBoTu() { GetDataUtil.getDat("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1", getActivity(), new JsonCallBack() { @Override public void getJsonString(String s) { list = new ArrayList<String>(); Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); list.add(dataDataBean.getData().get(0).getImg()); ViewPagerAdapter adapter=new ViewPagerAdapter(getActivity(), list); vp.setAdapter(adapter);// init(); vp.setCurrentItem(list.size()*100000); handler.sendEmptyMessageDelayed(0,2000);// 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<images.size();i++){// if (i==position%list.size()){// images.get(i).setImageResource(R.drawable.shape1);// }else {// images.get(i).setImageResource(R.drawable.shape2);// }// }// }//// @Override// public void onPageScrollStateChanged(int state) {//// }// }); } }); }// private void init() {// images = new ArrayList<>();// linear.removeAllViews();// for (int i=0;i<list.size();i++){// ImageView imageView = new ImageView(getActivity());// if (i==0){// imageView.setImageResource(R.drawable.shape1);// }else {// imageView.setImageResource(R.drawable.shape2);// }// images.add(imageView);// LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);// params.setMargins(5,0,5,0);// linear.addView(imageView);// }// } private void getNet() { GetDataUtil.getDat("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1", getActivity(), new JsonCallBack() { @Override public void getJsonString(String s) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); lists.addAll(dataDataBean.getData()); setAdapter(); plv.onRefreshComplete(); startLabels.setLastUpdatedLabel("上次更新时间:" + new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis()))); } }); } private void setAdapter() { if (lvadapter==null){ lvadapter = new ListViewAdapter(getActivity(),lists); plv.setAdapter(lvadapter); }else { lvadapter.notifyDataSetChanged(); } }} GETDatautil网络判断networkpackage com.example.zhoukao_03.util;import android.content.Context;import android.os.AsyncTask;import android.util.Log;import com.example.zhoukao_03.JsonCallBack;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;/** * Created by lenovo on 2017/10/21. */public class GetDataUtil { public static void getDat(final String path, Context context, final JsonCallBack jsonCallBack) { if (NetWorkUtil.isNetworkConnected(context)) { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int responseCode = connection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream, "utf-8"); Log.i("666666", json); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); jsonCallBack.getJsonString(s); } }; asyncTask.execute(); } else { NetWorkUtil.showNoNetWorkDlg(context); } } private static String streamToString(InputStream inputStream, String ss) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, ss); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null) { builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }}package com.example.zhoukao_03.util;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;/** * Created by lenovo on 2017/10/21. */public class NetWorkUtil { public static boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null) { return networkInfo.isAvailable(); } } return false; } public static void showNoNetWorkDlg(final Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setMessage("网络未连接,是否去设置") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 跳转到系统的网络设置界面 Intent intent = null; // 先判断当前系统版本 if(android.os.Build.VERSION.SDK_INT > 10){ // 3.0以上 intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); }else{ intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings"); } context.startActivity(intent); } }).setNegativeButton("取消", null).show(); }}
jsoncallback
/** * Created by lenovo on 2017/10/21. */public interface JsonCallBack { public void getJsonString(String s);}
listviewadapter 适配器package com.example.zhoukao_03.adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.zhoukao_03.R;import com.example.zhoukao_03.bbean.DataDataBean;import com.example.zhoukao_03.util.ImageLoaderUtil;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by lenovo on 2017/10/21. */public class ListViewAdapter extends BaseAdapter{ Context context; List<DataDataBean.DataBean> lists; public ListViewAdapter(Context context, List<DataDataBean.DataBean> lists) { this.context=context; this.lists=lists; } @Override public int getCount() { return lists.size(); } @Override public Object getItem(int i) { return lists.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; if (view==null){ view=View.inflate(context, R.layout.items,null); holder=new ViewHolder(); holder.imageView= (ImageView) view.findViewById(R.id.image); holder.textView= (TextView) view.findViewById(R.id.text); view.setTag(holder); }else { holder= (ViewHolder) view.getTag(); } holder.textView.setText(lists.get(i).getTitle()); ImageLoader.getInstance().displayImage(lists.get(i).getUserImg(),holder.imageView, ImageLoaderUtil.getDataOption()); return view; } private class ViewHolder{ TextView textView; ImageView imageView; }} viewpageradapterpackage com.example.zhoukao_03.adapter;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.example.zhoukao_03.util.ImageLoaderUtil;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by lenovo on 2017/10/21. */public class ViewPagerAdapter extends PagerAdapter{ Context context; List<String> list; public ViewPagerAdapter(Context context, List<String> list) { this.context=context; this.list=list; } @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(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(list.get(position%list.size()),imageView, ImageLoaderUtil.getDataOption()); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
权限<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>