Listview排行榜,前三名排名用不同圖片代表
阿新 • • 發佈:2018-12-19
老規矩,先看圖,適合你的再往下看:
這是一個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()); } } }
好了,這就是主要程式碼了,有不全的可以問我。感謝大家支援