老规矩,先看图,适合你的再往下看:
这是一个listview,展示100条数据。之后是先加载10条,点击加载更多显示全部。
第一步,先写布局:
<?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="vertical">
<ImageView
android:id="@+id/iv_tuition"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dimen_10dp"
android:scaleType="fitXY"
android:src="@drawable/img_income"
android:visibility="gone" />
<com.dyh.frame.widget.AutoHeightListView
android:id="@+id/lv_tuiton_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_5"
android:layout_marginTop="@dimen/dp_10"
android:divider="@color/dividerColor_view"
android:dividerHeight="@dimen/dp_0.5" />
<TextView
android:id="@+id/tv_more"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/dimen_20dp"
android:background="@color/white"
android:gravity="center"
android:padding="@dimen/dimen_10dp"
android:text="查看更多"
android:textColor="@color/app_button_price"
android:textSize="@dimen/dimen_15sp" />
</LinearLayout>
以上是一个图片显示排行榜,其次是listview,最后是一个Textview用来加载全部数据。
接下来就是代码:
Activity:
private TextView mTvmore;
private ImageView mIvtuition;
mTvmore = (TextView) findViewById(R.id.tv_more);//查看更多
mTvmore.setOnClickListener(this);
mIvtuition = (ImageView) findViewById(R.id.iv_tuition);//收入榜图片
@Override加载更多的点击事件
public void onClick(View v) {
switch (v.getId()) {
//排行榜显示更多
case R.id.tv_more:
//要对适配器和listview进行判空,否则会出现空指针
if (incoAdapter != null) {
if (!ListUtil.isNullOrEmpty(list1listview)) {
if (isShort) {
incoAdapter.setDataList(list1listview);
mTvmore.setText("收起");
isShort = false;
} else {
incoAdapter.setDataList(list1listview.subList(0, 10));
mTvmore.setText("查看更多");
isShort = true;
}
}
}
/**
* 网络请求排行榜listview列表解析显示
*/
private void reqDatalist() {
DefaultStringRequestNew req = new DefaultStringRequestNew(mContext, HostStudentNew.EARN_TUITION_INCOM, new ResponseListenerNew(mContext) {
@Override
public void onSuccess(String response) {
//解析其余详情数据
IncomeBean incoBean = JsonUtils.fromJson(response, IncomeBean.class);
if (incoBean != null) {
if (incoBean.getResult() == 0) {
mIvtuition.setVisibility(View.VISIBLE);
list1listview = incoBean.getData();
if (!ListUtil.isNullOrEmpty(list1listview)) {
initMore();
}
} else {
showToast(incoBean.getMessage());
}
}
mScroller.post(new Runnable() {
@Override
public void run() {
mScroller.scrollTo(0, 0);
}
});
}
});
VolleyUtil.getInstance().addToRequestQueue(req);
}
private void initMore() {
/*
* 判断listview长度,当条目长度大于10只加载10条,不足十条全部显示,设置到适配器
* */
if (list1listview.size() > 10) {
incoAdapter = new IncomeAdapter(mContext, list1listview.subList(0, 10));
mTvmore.setVisibility(View.VISIBLE);
isShort = true;
} else {
incoAdapter = new IncomeAdapter(mContext, list1listview);
mTvmore.setVisibility(View.GONE);
}
mLvtuitonlist.setAdapter(incoAdapter);
}
最后是适配器:
首先适配器布局:
<?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="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="@color/white" android:padding="@dimen/dimen_8dp"> <TextView android:id="@+id/tv_incom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/dimen_7dp" /> <com.itheima.roundedimageview.RoundedImageView android:id="@+id/user_icon" android:layout_width="40dp" android:layout_height="40dp" android:layout_marginLeft="@dimen/dimen_45dp" android:scaleType="fitXY" app:riv_oval="true" android:src="@drawable/icon_default_head" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/dimen_10dp" android:layout_toRightOf="@+id/user_icon" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:id="@+id/tv_username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="九悦" android:textColor="@color/tc_gray_3" android:maxLength="10" android:ellipsize="end" android:textSize="@dimen/dimen_14sp" /> <TextView android:id="@+id/tv_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="18810762963" android:textColor="@color/tc_gray_3" android:textSize="@dimen/dimen_14sp" /> </LinearLayout> <TextView android:id="@+id/tv_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="@dimen/dimen_10dp" android:text="10000.00元" android:textColor="@color/tc_gray_3" android:textSize="@dimen/dimen_14sp" /> </RelativeLayout> 适配器代码:
package com.dyhoa.school.uinew.adapter; import android.content.Context; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.dyh.common.utils.DisplayOption; import com.dyh.frame.simple.AbstractAdapter; import com.dyhoa.school.R; import com.dyhoa.school.uinew.earnmoney.bean.IncomeBean; import com.dyhoa.school.utils.MathUtil; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; /** * 排行榜适配器 * Created by ljg on 2018/10/31. */ public class IncomeAdapter extends AbstractAdapter<IncomeBean.DataEntity> { public IncomeAdapter(Context mContext, List<IncomeBean.DataEntity> dataList) { super(mContext, dataList); } @Override public int getListViewItemId() { return R.layout.item_tuitionlisr; } @Override public void convert(int position, View convertView, IncomeBean.DataEntity dataItem) { TextView mTvusername = convertView.findViewById(R.id.tv_username);//姓名 TextView mTvphone = convertView.findViewById(R.id.tv_phone);//手机号 TextView mTvprice = convertView.findViewById(R.id.tv_price);//实体价格 ImageView mUsericon = convertView.findViewById(R.id.user_icon);//头像 TextView mTvincom = convertView.findViewById(R.id.tv_incom);//数字排名 ImageLoader.getInstance().displayImage(dataItem.getIcon(), mUsericon, DisplayOption.getBannerOptions()); mTvusername.setText(dataItem.getUsername()); mTvprice.setText(MathUtil.round(dataItem.getTotal(), 2) + "元"); if (!TextUtils.isEmpty(dataItem.getMobile())) { String maskNumber = dataItem.getMobile().substring(0, 3) + "****" + dataItem.getMobile().substring(7, dataItem.getMobile().length()); mTvphone.setText(maskNumber); } if (dataItem.getOrderNumber() == 1) { mTvincom.setBackgroundResource(R.drawable.img_one); mTvincom.setText(""); } else if (dataItem.getOrderNumber() == 2) { mTvincom.setBackgroundResource(R.drawable.img_two); } else if (dataItem.getOrderNumber() == 3) { mTvincom.setBackgroundResource(R.drawable.img_three); } else { mTvincom.setBackgroundResource(R.color.white); mTvincom.setText(" " + dataItem.getOrderNumber()); } } }
好了,这就是主要代码了,有不全的可以问我。感谢大家支持