MainActivity
public class MainActivity extends AppCompatActivity {
private DrawerLayout drawerLayout;
private LinearLayout linMenu;
private List<String> list;
private List<UserBean.DataBean> data;
private ListView listView, lv;
private String sj;
private int num = 1;
private LinearLayout linMenu;
private List<String> list;
private List<UserBean.DataBean> data;
private ListView listView, lv;
private String sj;
private int num = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.lv);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.lv);
drawerLayout = findViewById(R.id.mydrawer);
linMenu = findViewById(R.id.lin_menu);
linMenu = findViewById(R.id.lin_menu);
Init();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String s = list.get(i);
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String s = list.get(i);
drawerLayout.closeDrawer(linMenu);
getSupportFragmentManager().beginTransaction().replace(R.id.fr_content,new ContentFragment()).commit();
}
});
}
private void Init(){
list = new ArrayList<>();
list.add("我的消息");
list.add("教学视频");
list.add("我的成绩");
list.add("学车日记");
list.add("文章收藏");
list.add("文章足迹");
list.add("教员中心");
list.add("设置");
}
}
list = new ArrayList<>();
list.add("我的消息");
list.add("教学视频");
list.add("我的成绩");
list.add("学车日记");
list.add("文章收藏");
list.add("文章足迹");
list.add("教员中心");
list.add("设置");
}
}
ContentFragment
public class ContentFragment extends Fragment {
private int pageIndex = 1;
private int operType = 1;
List<UserBean.DataBean> list = new ArrayList<>();
private String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
private MyAdapter adapter;
private PullToRefreshListView plv;
private int operType = 1;
List<UserBean.DataBean> list = new ArrayList<>();
private String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
private MyAdapter adapter;
private PullToRefreshListView plv;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content, container, false);
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content, container, false);
plv = view.findViewById(R.id.plv);
initplv();
initplv();
requestNetData();
return view;
}
return view;
}
private void requestNetData(){
if (NetStateUtil.isConn(getActivity())){
MyTask myTask = new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String s) {
Log.d("tag",s);
Gson gson = new Gson();
UserBean userBean = gson.fromJson(s, UserBean.class);
if (NetStateUtil.isConn(getActivity())){
MyTask myTask = new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String s) {
Log.d("tag",s);
Gson gson = new Gson();
UserBean userBean = gson.fromJson(s, UserBean.class);
if (operType==1){
list.clear();
}
list.addAll(userBean.getData());
list.clear();
}
list.addAll(userBean.getData());
setLvAdapter();
plv.onRefreshComplete();
}
});
myTask.execute(url);
}else {
NetStateUtil.showNoNetWorkDlg(getActivity());
}
}
}
});
myTask.execute(url);
}else {
NetStateUtil.showNoNetWorkDlg(getActivity());
}
}
private void initplv(){
plv.setMode(PullToRefreshBase.Mode.BOTH);
plv.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout proxy = plv.getLoadingLayoutProxy(true, false);
proxy.setPullLabel("下拉刷新");
proxy.setRefreshingLabel("正在拉");
proxy.setReleaseLabel("放开刷新");
proxy.setPullLabel("下拉刷新");
proxy.setRefreshingLabel("正在拉");
proxy.setReleaseLabel("放开刷新");
ILoadingLayout proxy1 = plv.getLoadingLayoutProxy(false, true);
proxy1.setPullLabel("上拉刷新");
proxy1.setRefreshingLabel("正在载入...");
proxy1.setReleaseLabel("放开刷新");
proxy1.setPullLabel("上拉刷新");
proxy1.setRefreshingLabel("正在载入...");
proxy1.setReleaseLabel("放开刷新");
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
operType=1;
pageIndex=1;
url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
requestNetData();
}
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
operType=1;
pageIndex=1;
url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
requestNetData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
operType=2;
pageIndex++;
url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
requestNetData();
}
});
}
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
operType=2;
pageIndex++;
url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
requestNetData();
}
});
}
private void setLvAdapter(){
if (adapter==null){
adapter = new MyAdapter(list,getActivity());
plv.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}
}
if (adapter==null){
adapter = new MyAdapter(list,getActivity());
plv.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}
}
MyAdapter
public class MyAdapter extends BaseAdapter {
private List<UserBean.DataBean> list;
private Context context;
private final DisplayImageOptions options;
private Context context;
private final DisplayImageOptions options;
private final int ITEM_TITLE=0;
private final int ITEM_IMAGE=1;
private final int ITEM_IMAGE=1;
public MyAdapter(List<UserBean.DataBean> list, Context context) {
this.list = list;
this.context = context;
this.list = list;
this.context = context;
options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
.build();
}
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
.build();
}
@Override
public int getViewTypeCount() {
return 2;
}
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if(position%2==0){//偶数
return ITEM_IMAGE;
}
return ITEM_TITLE;//基数
}
public int getItemViewType(int position) {
if(position%2==0){//偶数
return ITEM_IMAGE;
}
return ITEM_TITLE;//基数
}
@Override
public int getCount() {
return list.size();
}
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
int type = getItemViewType(i);
if(type==ITEM_IMAGE){
if(convertView==null){
convertView=View.inflate(context,R.layout.item,null);
public View getView(int i, View convertView, ViewGroup viewGroup) {
int type = getItemViewType(i);
if(type==ITEM_IMAGE){
if(convertView==null){
convertView=View.inflate(context,R.layout.item,null);
}
TextView tv= convertView.findViewById(R.id.tv);
ImageView img= convertView.findViewById(R.id.img);
tv.setText(list.get(i).getTITLE());
ImageLoader.getInstance().displayImage(list.get(i).getIMAGEURL(),img,options);
TextView tv= convertView.findViewById(R.id.tv);
ImageView img= convertView.findViewById(R.id.img);
tv.setText(list.get(i).getTITLE());
ImageLoader.getInstance().displayImage(list.get(i).getIMAGEURL(),img,options);
return convertView;
}{
if(convertView==null){
convertView=View.inflate(context,R.layout.itemss,null);
}{
if(convertView==null){
convertView=View.inflate(context,R.layout.itemss,null);
}
TextView tv= convertView.findViewById(R.id.tv);
tv.setText(list.get(i).getTITLE());
}
return convertView;
}
TextView tv= convertView.findViewById(R.id.tv);
tv.setText(list.get(i).getTITLE());
}
return convertView;
}
}
MyTask
public class MyTask extends AsyncTask<String, Void, String> {
private Icallbacks icallbacks;
private MyTask(){}
MyTask(Icallbacks icallbacks){
this.icallbacks = icallbacks;
}
private MyTask(){}
MyTask(Icallbacks icallbacks){
this.icallbacks = icallbacks;
}
@Override
protected String doInBackground(String... params) {
String str = "";
try {
URL url = new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
protected String doInBackground(String... params) {
String str = "";
try {
URL url = new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
if (connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
str = StreamToString.streamToStr(inputStream,"utf-8");
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
InputStream inputStream = connection.getInputStream();
str = StreamToString.streamToStr(inputStream,"utf-8");
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
protected void onPostExecute(String s) {
super.onPostExecute(s);
icallbacks.updateUiByjson(s);
}
}
public interface Icallbacks{
void updateUiByjson(String s);
}
}
void updateUiByjson(String s);
}
}
NetStateUtil
public class NetStateUtil {
public static boolean isConn(Context context){
boolean bisConnFlag = false;
ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo network = conManager.getActiveNetworkInfo();
if (network!=null){
bisConnFlag = conManager.getActiveNetworkInfo().isAvailable();
}
return bisConnFlag;
}
boolean bisConnFlag = false;
ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo network = conManager.getActiveNetworkInfo();
if (network!=null){
bisConnFlag = conManager.getActiveNetworkInfo().isAvailable();
}
return bisConnFlag;
}
public static void showNoNetWorkDlg(final Context context){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.mipmap.ic_launcher)
.setTitle(R.string.app_name)
.setMessage("当前无网络").setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.mipmap.ic_launcher)
.setTitle(R.string.app_name)
.setMessage("当前无网络").setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = null;
if (Build.VERSION.SDK_INT>10){
intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
}else {
intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
}
context.startActivity(intent);
}
}).setNegativeButton("知道了",null).show();
}
intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
}else {
intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
}
context.startActivity(intent);
}
}).setNegativeButton("知道了",null).show();
}
}
StreamToString
public class StreamToString {
public static String streamToStr(InputStream inputStream, String chartSet){
StringBuilder builder = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,chartSet));
String con;
while ((con = br.readLine())!=null){
builder.append(con);
}
br.close();
return builder.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
MyApp
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
public void onCreate() {
super.onCreate();
Log.d("zzz","App入口");
Toast.makeText(this,"app", Toast.LENGTH_SHORT).show();
Toast.makeText(this,"app", Toast.LENGTH_SHORT).show();
File cachefile = new File(Environment.getExternalStorageDirectory().getPath()+"/images");
ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
.memoryCacheExtraOptions(400, 700)//缓存图片最大的长和宽
.threadPoolSize(3)//线程池的数量
.threadPriority(4)
.memoryCacheSize(20*1024*1024)//设置内存缓存区大小
.diskCacheSize(80*1024*1024)//设置sd卡缓存区大小
.diskCache(new UnlimitedDiskCache(cachefile))//自定义sd卡缓存目录
.writeDebugLogs()//打印日志内容
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
.build();
ImageLoader.getInstance().init(configuration);
}
.memoryCacheExtraOptions(400, 700)//缓存图片最大的长和宽
.threadPoolSize(3)//线程池的数量
.threadPriority(4)
.memoryCacheSize(20*1024*1024)//设置内存缓存区大小
.diskCacheSize(80*1024*1024)//设置sd卡缓存区大小
.diskCache(new UnlimitedDiskCache(cachefile))//自定义sd卡缓存目录
.writeDebugLogs()//打印日志内容
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
.build();
ImageLoader.getInstance().init(configuration);
}
}