依赖包======================
implementation 'com.google.code.gson:gson:2.2.4'解析
implementation 'com.squareup.picasso:picasso:2.3.2'图片
implementation'com.nostra13.universalimageloader:universal-image-loader:1.9.5'加载图片
implementation 'de.hdodenhof:circleimageview:2.0.0'园图片
=============================主页面================================================
private XListView listView;
private String dataUrl = "https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2512&k=&num=20&page=1";
private NewsMyAdapter newsMyAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (XListView) findViewById(R.id.view);
newsMyAdapter = new NewsMyAdapter(this);
listView.setAdapter(newsMyAdapter);
listView.setPullLoadEnable(true);
listView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
doHttp();
}
@Override
public void onLoadMore() {
listView.stopLoadMore();
}
});
findViewById(R.id.jiazai).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
doHttp();
}
});
}
private void doHttp() {
new Hepler().get(dataUrl).result(new Hepler.Httplistener() {
@Override
public void succuss(String data) {
Bean baen = new Gson().fromJson(data, Bean.class);
List<Data> data1 = baen.getResult().getData();
newsMyAdapter.setList(data1);
listView.stopRefresh();
}
});
}
private void toast(String d) {
Toast.makeText(this, d, Toast.LENGTH_LONG).show();
}
================================适配器==================================================
public class NewsMyAdapter extends BaseAdapter {
private Context context;
public NewsMyAdapter(Context context) {
this.context = context;
}
List<Data> list = new ArrayList<>();
@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) {
ViewHolder1 viewHolder1;
if (view == null) {
view = View.inflate(context, R.layout.lay, null);
viewHolder1 = new ViewHolder1();
viewHolder1.img = (CircleImageView) view.findViewById(R.id.news_pic);
viewHolder1.men1 = (TextView) view.findViewById(R.id.news_desc);
viewHolder1.men2 = (TextView) view.findViewById(R.id.news_title);
view.setTag(viewHolder1);
} else {
viewHolder1 = (ViewHolder1) view.getTag();
}
Data bean = list.get(i);
viewHolder1.men1.setText(bean.getCtime());
viewHolder1.men2.setText(bean.getIntime());
if (list.get(i).getImages() == null || list.get(i).getImages().size() == 0) {
viewHolder1.img.setImageResource(R.drawable.ic_launcher_background);
} else {
ImageLoader.getInstance().displayImage(bean.getImages().get(0).getU(), viewHolder1.img);
}
return view;
}
public void setList(List<Data> list) {
this.list = list;
notifyDataSetChanged();
}
class ViewHolder1 {
CircleImageView img;
TextView men1, men2;
}
========================================布局=============================================
<?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="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/jiazai"
android:text="加载" />
<com.example.xlistviewlib.XListView
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
====================适配器布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/news_pic"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginRight="10dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/news_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/news_pic"
android:ellipsize="end"
android:lines="1"
android:text="我是Title" />
<TextView
android:id="@+id/news_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/news_title"
android:layout_toRightOf="@+id/news_pic"
android:ellipsize="end"
android:lines="3"
android:text="我是Desc" />
</RelativeLayout>