//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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwei.MainActivity">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.bwie.xlistviewlibrary.View.XListView
android:id="@+id/xlv"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.bwie.xlistviewlibrary.View.XListView>
<ListView
android:id="@+id/lv"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:choiceMode="singleChoice" />
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
//main方法的操作
package com.bwei;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.bwei.BEAN.bean;
import com.bwei.DAO.IToos;
import com.bwie.xlistviewlibrary.View.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
private DrawerLayout drawable;
private ListView lv;
private List<String> list;
private Myadapter my;
int j = 1;
int n = 1;
private ImageLoader instance;
private MyBase mybase;
private XListView xlv;
String Httpurl = "https://api.expoon.com/AppNews/getNewsList/type/";
private List<com.bwei.BEAN.bean.DataBean> li = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
drawable = (DrawerLayout) findViewById(R.id.drawerLayout);
//获取listView控件
lv = (ListView) findViewById(R.id.lv);
//侧滑的初始值
indata();
//侧滑的适配器
my = new MainActivity.Myadapter();
lv.setAdapter(my);
//xlv控件
xlv = (XListView) findViewById(R.id.xlv);
//xlv的适配器
mybase = new MyBase();
xlv.setAdapter(mybase);
//图片全局适配
instance = ImageLoader.getInstance();
//允许下拉
xlv.setPullLoadEnable(true);
//调用自己当实现类
xlv.setXListViewListener(this);
//调用网络数据的方法 传的是j改变URL n传的是改变type
getasyntask(j, n);
//侧滑的点击事件
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//点击黑j传值改变url
j = i + 1;
//调用网络数据的方法 传的是j改变URL n传的是改变type
getasyntask(j, n);
//清空集合
li.clear();
//关闭侧滑
drawable.closeDrawer(lv);
}
});
}
//侧滑的初始值
private void indata() {
list = new ArrayList<>();
list.add("新闻");
list.add("关注");
list.add("动态");
list.add("设置");
}
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(MainActivity.this, R.layout.f1, null);
}
TextView tv = (TextView) view.findViewById(R.id.tv);
tv.setText(list.get(i));
return view;
}
}
//调用网络数据的方法 传的是j改变URL n传的是改变type
public void getasyntask(int j, int n) {
new Myasyntask().execute(Httpurl + j + "/p/" + n);
}
//下拉刷新
@Override
public void onRefresh() {
li.clear();
n = 1;
getasyntask(j, n);
}
//上啦加载
@Override
public void onLoadMore() {
n += 1;
getasyntask(j, n);
}
//加载完后关闭
public void clearguibi() {
//下拉关闭
xlv.stopRefresh();
//上啦关闭
xlv.stopLoadMore();
//刷新时间
xlv.setRefreshTime("刚刚");
}
class Myasyntask extends AsyncTask<String, Void, String> {
//子线程运行的方法
@Override
protected String doInBackground(String... strings) {
//strings数组
String jiexi = strings[0];
//实力化解析的方法类
String ioss = IToos.ioss(jiexi);
return ioss;
}
@Override//回调成功的方法
protected void onPostExecute(String s) {// s就是回调的是ioss
super.onPostExecute(s);
//实力化gson
Gson g = new Gson();
//获取解析的类
bean bean = g.fromJson(s, bean.class);//bean.class类
//获取data类
List<com.bwei.BEAN.bean.DataBean> data = bean.getData();
//获取pc_feed_focus数组
//pc_feed_focus集合放入list的集合
li.addAll(data);
//刷新
mybase.notifyDataSetChanged();
//在刷新后 加载完后关闭的方法
clearguibi();
}
}
class MyBase extends BaseAdapter {
@Override
public int getCount() {
return li.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@SuppressLint("CutPasteId")
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
int type = getItemViewType(i);
Viewholder holder0 = null;
Viewholder1 holder1 = null;
switch (type) {
case 0:
if (view == null) {
holder0 = new Viewholder();
view = View.inflate(MainActivity.this, R.layout.f2, null);
holder0.tv = (TextView) view.findViewById(R.id.tvv);
view.setTag(holder0);
} else {
holder0 = (Viewholder) view.getTag();
}
holder0.tv.setText(li.get(i).getNews_title());
break;
case 1:
if (view == null) {
holder1 = new Viewholder1();
view = View.inflate(MainActivity.this, R.layout.f, null);
holder1.tvv2 = (TextView) view.findViewById(R.id.tvv1);
holder1.im = (ImageView) view.findViewById(R.id.imga);
view.setTag(holder1);
} else {
holder1 = (Viewholder1) view.getTag();
}
holder1.tvv2.setText(li.get(i).getNews_title());
holder1.im = (ImageView) view.findViewById(R.id.imga);
instance.displayImage(li.get(i).getPic_url(), holder1.im);
break;
}
return view;
}
//布局数量
@Override
public int getViewTypeCount() {
return 2;
}
//布局类型
@Override
public int getItemViewType(int position) {
String pic_url = li.get(position).getPic_url();
int type = 0;
if (pic_url != null || pic_url != "") {
type = 0;
} else {
type = 1;
}
return type;
}
}
class Viewholder {
TextView tv;
}
class Viewholder1 {
TextView tvv2;
ImageView im;
}
}