//mainactivity
package com.bwie.lianxi_03;
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.database.DatabaseErrorHandler;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.google.gson.Gson;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import me.maxwin.view.XListView;
import static android.R.attr.data;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
private XListView xlistview;
private List<Data.ListBean> list;
private MyAdapter mAdapter;
private String urlpath = "http://qhb.2dyt.com/Bwei/news?page=1&type=1&postkey=1503d";
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
String str = (String) msg.obj;
Gson gson = new Gson();
Data data = gson.fromJson(str, Data.class);
list.addAll(data.getList());
//刷新适配器
mAdapter.notifyDataSetChanged();
private List<Data.ListBean> list;
private MyAdapter mAdapter;
private String urlpath = "http://qhb.2dyt.com/Bwei/news?page=1&type=1&postkey=1503d";
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
String str = (String) msg.obj;
Gson gson = new Gson();
Data data = gson.fromJson(str, Data.class);
list.addAll(data.getList());
//刷新适配器
mAdapter.notifyDataSetChanged();
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
@Override
public void run() {
super.run();
loaddata();
}
}.start();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
@Override
public void run() {
super.run();
loaddata();
}
}.start();
xlistview = (XListView) findViewById(R.id.xlistview);
list = new ArrayList<>();
mAdapter = new MyAdapter(MainActivity.this, list);
mAdapter = new MyAdapter(MainActivity.this, list);
xlistview.setAdapter(mAdapter);
xlistview.stopRefresh();
xlistview.setXListViewListener(this);
xlistview.setPullLoadEnable(true);
xlistview.setRefreshTime("刚刚");
xlistview.setXListViewListener(this);
xlistview.setPullLoadEnable(true);
xlistview.setRefreshTime("刚刚");
}
private void loaddata() {
String s = UrlUtils.sendGetHttpUrlconnection(urlpath);
Message msg = Message.obtain();
msg.obj = s;
msg.what = 0;
mHandler.sendMessage(msg);
}
String s = UrlUtils.sendGetHttpUrlconnection(urlpath);
Message msg = Message.obtain();
msg.obj = s;
msg.what = 0;
mHandler.sendMessage(msg);
}
private void stoppp() {
//停止刷新 和加载更多
xlistview.stopRefresh();
xlistview.stopLoadMore();
xlistview.setRefreshTime("刚才");
}
//停止刷新 和加载更多
xlistview.stopRefresh();
xlistview.stopLoadMore();
xlistview.setRefreshTime("刚才");
}
@Override
public void onRefresh() {
list.clear();
new Thread() {
@Override
public void run() {
super.run();
try {
sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//获取数据
loaddata();
//重新回到主线程
runOnUiThread(new Runnable() {
@Override
public void run() {
stoppp();
}
});
}
}.start();
}
@Override
public void onLoadMore() {
public void onLoadMore() {
}
class MyAdapter extends BaseAdapter {
Context context;
List<Data.ListBean> mlist;
//定义两个类型
final int TYPE_1 = 0;
final int TYPE_2 = 1;
Context context;
List<Data.ListBean> mlist;
//定义两个类型
final int TYPE_1 = 0;
final int TYPE_2 = 1;
public MyAdapter(Context context, List<Data.ListBean> mlist) {
this.context = context;
this.mlist = mlist;
}
this.context = context;
this.mlist = mlist;
}
@Override
public int getCount() {
return mlist.size();
}
public int getCount() {
return mlist.size();
}
@Override
public Object getItem(int position) {
return null;
}
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public long getItemId(int position) {
return 0;
}
//有几个类型
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getViewTypeCount() {
return 2;
}
//判断的类型
@Override
public int getItemViewType(int position) {
//获取图片地址
String pic = list.get(position).getPic();
//根据|来分割字符串 为一个字符数组
String[] split = pic.split("\\|");
//如果字符数组的长度是一 那么返回第一个类型
if (split.length == 1) {
return TYPE_1;
} else {//反之
return TYPE_2;
}
}
@Override
public int getItemViewType(int position) {
//获取图片地址
String pic = list.get(position).getPic();
//根据|来分割字符串 为一个字符数组
String[] split = pic.split("\\|");
//如果字符数组的长度是一 那么返回第一个类型
if (split.length == 1) {
return TYPE_1;
} else {//反之
return TYPE_2;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHoloder viewHoloder = null;
int type = getItemViewType(position);
if (convertView == null) {
if (type == TYPE_1) {//如果type等于第一个类型
viewHoloder = new ViewHoloder();
convertView = View.inflate(context, R.layout.list_item, null);
//记得用convertView.findViewById
viewHoloder.id = (TextView) convertView.findViewById(R.id.item_id);
viewHoloder.image = (ImageView) convertView.findViewById(R.id.imageview);
viewHoloder.title = (TextView) convertView.findViewById(R.id.item_title);
} else {
viewHoloder = new ViewHoloder();
convertView = View.inflate(context, R.layout.item2, null);
viewHoloder.textView = (TextView) convertView.findViewById(R.id.textView);
viewHoloder.image1 = (ImageView) convertView.findViewById(R.id.imageView);
viewHoloder.iamge2 = (ImageView) convertView.findViewById(R.id.imageView2);
}
convertView.setTag(viewHoloder);
} else {
viewHoloder = (ViewHoloder) convertView.getTag();
}
//如果是type1
if (type == TYPE_1) {
Data.ListBean data = mlist.get(position);
viewHoloder.title.setText(data.getTitle());
viewHoloder.id.setText(data.getId() + "");
Glide.with(context).load(data.getPic()).into(viewHoloder.image);
} else {//反之
viewHoloder.textView.setText(list.get(position).getTitle());
String pic = list.get(position).getPic();
String[] split = pic.split("\\|");
Glide.with(context).load(split[0]).into(viewHoloder.image1);
Glide.with(context).load(split[1]).into(viewHoloder.iamge2);
}
return convertView;
}
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHoloder viewHoloder = null;
int type = getItemViewType(position);
if (convertView == null) {
if (type == TYPE_1) {//如果type等于第一个类型
viewHoloder = new ViewHoloder();
convertView = View.inflate(context, R.layout.list_item, null);
//记得用convertView.findViewById
viewHoloder.id = (TextView) convertView.findViewById(R.id.item_id);
viewHoloder.image = (ImageView) convertView.findViewById(R.id.imageview);
viewHoloder.title = (TextView) convertView.findViewById(R.id.item_title);
} else {
viewHoloder = new ViewHoloder();
convertView = View.inflate(context, R.layout.item2, null);
viewHoloder.textView = (TextView) convertView.findViewById(R.id.textView);
viewHoloder.image1 = (ImageView) convertView.findViewById(R.id.imageView);
viewHoloder.iamge2 = (ImageView) convertView.findViewById(R.id.imageView2);
}
convertView.setTag(viewHoloder);
} else {
viewHoloder = (ViewHoloder) convertView.getTag();
}
//如果是type1
if (type == TYPE_1) {
Data.ListBean data = mlist.get(position);
viewHoloder.title.setText(data.getTitle());
viewHoloder.id.setText(data.getId() + "");
Glide.with(context).load(data.getPic()).into(viewHoloder.image);
} else {//反之
viewHoloder.textView.setText(list.get(position).getTitle());
String pic = list.get(position).getPic();
String[] split = pic.split("\\|");
Glide.with(context).load(split[0]).into(viewHoloder.image1);
Glide.with(context).load(split[1]).into(viewHoloder.iamge2);
}
return convertView;
}
}
class ViewHoloder {
TextView title;
TextView id;
ImageView image;
TextView textView;
ImageView image1, iamge2;
}
}
TextView title;
TextView id;
ImageView image;
TextView textView;
ImageView image1, iamge2;
}
}
//data
数据解析出来
//utils工具类
package com.bwie.lianxi_03;
import android.util.Log;
import com.google.gson.Gson;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* Created by admin on 2017/6/27.
*/
* Created by admin on 2017/6/27.
*/
public class UrlUtils {
public static String sendGetHttpUrlconnection(final String urlpath) {
try {
// 创建一个URL对象并传入地址
URL url = new URL(urlpath);
// 用地址打开连接通道
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
StringBuffer sb = new StringBuffer();
if (connection.getResponseCode()==200){
InputStream in = connection.getInputStream();
// 创建高效流对象
// 创建一个URL对象并传入地址
URL url = new URL(urlpath);
// 用地址打开连接通道
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
StringBuffer sb = new StringBuffer();
if (connection.getResponseCode()==200){
InputStream in = connection.getInputStream();
// 创建高效流对象
byte[] b = new byte[1024];
int line = 0;
while ((line = in.read(b)) != -1) {
sb.append(new String(b, 0, line, "utf-8"));// StringBuffer
}
Log.e("/","//"+sb.toString());
return sb.toString();
}
// 得到输入流
// Gson gson = new Gson();
// Data data = gson.fromJson(sb.toString(), Data.class);
// Data data = gson.fromJson(sb.toString(), Data.class);
} catch (Exception e) {
e.printStackTrace();
} return null;
e.printStackTrace();
} return null;
}
}
//xml如下
//首先是main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.lianxi_03.MainActivity">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.lianxi_03.MainActivity">
<me.maxwin.view.XListView
android:id="@+id/xlistview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
android:id="@+id/xlistview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
//其次是第一个item 用于多条目展示
<?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"
android:orientation="horizontal">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher" />
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:id="@+id/item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/item_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
android:id="@+id/item_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
//最后是 最后一个item
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<RelativeLayout 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">
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="100dp">
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="100dp">
<ImageView
android:layout_width="113dp"
android:layout_height="100dp"
app:srcCompat="@mipmap/ic_launcher"
android:id="@+id/imageView"
android:layout_weight="0.34" />
android:layout_width="113dp"
android:layout_height="100dp"
app:srcCompat="@mipmap/ic_launcher"
android:id="@+id/imageView"
android:layout_weight="0.34" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="100dp"
app:srcCompat="@mipmap/ic_launcher"
android:id="@+id/imageView2"
android:layout_weight="1.03" />
</LinearLayout>
android:layout_width="wrap_content"
android:layout_height="100dp"
app:srcCompat="@mipmap/ic_launcher"
android:id="@+id/imageView2"
android:layout_weight="1.03" />
</LinearLayout>
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_marginStart="45dp"
android:id="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="110dp" />
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_marginStart="45dp"
android:id="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="110dp" />
</RelativeLayout>