<?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_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--主内容区域的视图-->
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<!--抽屉展示的布局-->
<RelativeLayout
android:background="#ffffff"
android:layout_gravity="left"
android:id="@+id/relative_layout"
android:layout_width="200dp"
android:layout_height="match_parent">
android:background="#ffffff"
android:layout_gravity="left"
android:id="@+id/relative_layout"
android:layout_width="200dp"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
/>
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
/>
<ListView
android:layout_marginTop="20dp"
android:id="@+id/list_view"
android:layout_below="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_marginTop="20dp"
android:id="@+id/list_view"
android:layout_below="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
----------------------------------------------------------xlistview页面布局
<?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">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.a10_drawerlayout_demo.view.XListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/x_list_view"
/>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/x_list_view"
/>
</LinearLayout>
------------------------------------------主页面
package com.example.a10_drawerlayout_demo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.support.v4.app.FragmentActivity;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
public class MainActivity extends FragmentActivity {
private DrawerLayout drawerLayout;
private ListView listView;
private FrameLayout frameLayout;
private RelativeLayout relativeLayout;
private ListView listView;
private FrameLayout frameLayout;
private RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//抽屉的跟布局
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
//选项的菜单
listView = (ListView) findViewById(R.id.list_view);
//主内容区域的布局
frameLayout = (FrameLayout) findViewById(R.id.frame_layout);
//抽屉显示的布局
relativeLayout = (RelativeLayout) findViewById(R.id.relative_layout);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
//选项的菜单
listView = (ListView) findViewById(R.id.list_view);
//主内容区域的布局
frameLayout = (FrameLayout) findViewById(R.id.frame_layout);
//抽屉显示的布局
relativeLayout = (RelativeLayout) findViewById(R.id.relative_layout);
final List<String> list = new ArrayList<>();
for (int i = 1; i<10;i++){
list.add(i+"");
}
for (int i = 1; i<10;i++){
list.add(i+"");
}
//设置适配器
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, list);
listView.setAdapter(arrayAdapter);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, list);
listView.setAdapter(arrayAdapter);
//条目的点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//要有一个fragment替换后面主内容的frameLayout
WeiXinFragment weiXinFragment = new WeiXinFragment();
//传值过去
Bundle bundle = new Bundle();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//要有一个fragment替换后面主内容的frameLayout
WeiXinFragment weiXinFragment = new WeiXinFragment();
//传值过去
Bundle bundle = new Bundle();
bundle.putString("key",list.get(i));
weiXinFragment.setArguments(bundle);
weiXinFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,weiXinFragment).commit();
//关闭抽屉
drawerLayout.closeDrawer(relativeLayout);
}
});
drawerLayout.closeDrawer(relativeLayout);
}
});
}
}
}
----------------------------------------fragment
package com.example.a10_drawerlayout_demo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.a10_drawerlayout_demo.adapter.MyAdapter;
import com.example.a10_drawerlayout_demo.bean.WeiXinBean;
import com.example.a10_drawerlayout_demo.view.XListView;
import com.google.gson.Gson;
import com.example.a10_drawerlayout_demo.bean.WeiXinBean;
import com.example.a10_drawerlayout_demo.view.XListView;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Dash
* @date 2017/9/8
* @description:
*/
public class WeiXinFragment extends Fragment implements XListView.IXListViewListener {
* @author Dash
* @date 2017/9/8
* @description:
*/
public class WeiXinFragment extends Fragment implements XListView.IXListViewListener {
private XListView x_list_view;
//集合记录数据
private List<WeiXinBean.ResultBean.ListBean> list = new ArrayList<>();
private int num = 1;
private MyAdapter myAdapter;
private List<WeiXinBean.ResultBean.ListBean> list = new ArrayList<>();
private int num = 1;
private MyAdapter myAdapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.weixin_layout, container, false);
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.weixin_layout, container, false);
x_list_view = view.findViewById(R.id.x_list_view);
//设置
x_list_view.setPullRefreshEnable(true);
x_list_view.setPullLoadEnable(false);
x_list_view.setPullRefreshEnable(true);
x_list_view.setPullLoadEnable(false);
x_list_view.setXListViewListener(this);
return view;
}
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//获取到传递过来的页码
Bundle bundle = getArguments();
String pageNum = bundle.getString("key","1");
Bundle bundle = getArguments();
String pageNum = bundle.getString("key","1");
num = Integer.parseInt(pageNum);
//获取数据
getDataFromNet();
}
//获取数据
getDataFromNet();
}
/**
* 网络获取数据
*/
private void getDataFromNet() {
AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... voids) {
* 网络获取数据
*/
private void getDataFromNet() {
AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... voids) {
String path = "http://v.juhe.cn/weixin/query";
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求
connection.setRequestMethod("POST");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
connection.setRequestMethod("POST");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
//设置向服务器输出
connection.setDoOutput(true);
//类型
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setDoOutput(true);
//类型
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
String param = "key=19178372f8a7c069c42cd59df8d84a46&ps=10&pno="+num;
connection.getOutputStream().write(param.getBytes("utf-8"));
connection.getOutputStream().write(param.getBytes("utf-8"));
//获取
int responseCode = connection.getResponseCode();
if (responseCode == 200){
InputStream inputStream = connection.getInputStream();
int responseCode = connection.getResponseCode();
if (responseCode == 200){
InputStream inputStream = connection.getInputStream();
String json = streamToString(inputStream,"utf-8");
Log.i("---",json);
return json;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
@Override
protected void onPostExecute(String json) {
//解析
Gson gson = new Gson();
WeiXinBean weiXinBean = gson.fromJson(json, WeiXinBean.class);
protected void onPostExecute(String json) {
//解析
Gson gson = new Gson();
WeiXinBean weiXinBean = gson.fromJson(json, WeiXinBean.class);
//获取里面数据的集合...添加
//weiXinBean.getResult().getList()
//weiXinBean.getResult().getList()
list.addAll(0,weiXinBean.getResult().getList());
//设置适配器
setAdapter();
setAdapter();
//停止
x_list_view.stopRefresh();
x_list_view.stopRefresh();
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
//设置时间
x_list_view.setRefreshTime(dateFormat.format(date));
x_list_view.setRefreshTime(dateFormat.format(date));
}
};
asyncTask.execute();
}
/**
* 设置适配器
*/
private void setAdapter() {
if (myAdapter == null){
myAdapter = new MyAdapter(getActivity(),list);
x_list_view.setAdapter(myAdapter);
* 设置适配器
*/
private void setAdapter() {
if (myAdapter == null){
myAdapter = new MyAdapter(getActivity(),list);
x_list_view.setAdapter(myAdapter);
}else {
myAdapter.notifyDataSetChanged();
}
myAdapter.notifyDataSetChanged();
}
}
private String streamToString(InputStream inputStream,String charset) {
try {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);
try {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String s = null;
StringBuilder builder = new StringBuilder();
while ((s = bufferedReader.readLine()) != null){
builder.append(s);
}
String s = null;
StringBuilder builder = new StringBuilder();
while ((s = bufferedReader.readLine()) != null){
builder.append(s);
}
bufferedReader.close();
return builder.toString();
return builder.toString();
} catch (Exception e) {
e.printStackTrace();
}
e.printStackTrace();
}
return null;
}
}
/**
* 下拉刷新
*/
@Override
public void onRefresh() {
num ++;
getDataFromNet();//加载到数据之后停止
}
@Override
public void onLoadMore() {
public void onLoadMore() {
}
}
}
--------------------------------------------adapter
package com.example.a10_drawerlayout_demo.adapter;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.a10_drawerlayout_demo.R;
import com.example.a10_drawerlayout_demo.bean.WeiXinBean;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.example.a10_drawerlayout_demo.bean.WeiXinBean;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import java.util.List;
/**
* @author Dash
* @date 2017/9/8
* @description:
*/
public class MyAdapter extends BaseAdapter {
Context context;
List<WeiXinBean.ResultBean.ListBean> list;
private int LEFT = 0;
private int RIGHT =1;
* @author Dash
* @date 2017/9/8
* @description:
*/
public class MyAdapter extends BaseAdapter {
Context context;
List<WeiXinBean.ResultBean.ListBean> list;
private int LEFT = 0;
private int RIGHT =1;
public MyAdapter(Context context, List<WeiXinBean.ResultBean.ListBean> list) {
this.context = context;
this.list = list;
this.context = context;
this.list = list;
ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context));
}
}
@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 int getViewTypeCount() {
return 2;
}
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if (position%2 == 0){
return LEFT;
}
return RIGHT;
}
public int getItemViewType(int position) {
if (position%2 == 0){
return LEFT;
}
return RIGHT;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (getItemViewType(i) == LEFT){
LeftHolder holder;
if (view == null){
view =View.inflate(context, R.layout.item_layout_01,null);
holder = new LeftHolder();
public View getView(int i, View view, ViewGroup viewGroup) {
if (getItemViewType(i) == LEFT){
LeftHolder holder;
if (view == null){
view =View.inflate(context, R.layout.item_layout_01,null);
holder = new LeftHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.iamge_01);
holder.imageView = view.findViewById(R.id.iamge_01);
view.setTag(holder);
}else {
holder = (LeftHolder) view.getTag();
}
holder = (LeftHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
holder.textView.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView,getOption());
}else if (getItemViewType(i) == RIGHT){
RightHolder holder;
if (view == null){
view =View.inflate(context, R.layout.item_layout_02,null);
holder = new RightHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.iamge_02);
holder.imageView = view.findViewById(R.id.iamge_02);
view.setTag(holder);
}else {
holder = (RightHolder) view.getTag();
}
holder = (RightHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
holder.textView.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView,getOption());
}
return view;
}
}
private DisplayImageOptions getOption() {
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.resetViewBeforeLoading(true)//在加载之前复位一下显示
.bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
.considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
.build();
return imageOptions;
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.resetViewBeforeLoading(true)//在加载之前复位一下显示
.bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
.considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
.build();
return imageOptions;
}
private class LeftHolder{
TextView textView;
ImageView imageView;
}
TextView textView;
ImageView imageView;
}
private class RightHolder{
TextView textView;
ImageView imageView;
}
TextView textView;
ImageView imageView;
}
}