先看一下eventType_rank_A
适配器
重点也就在这里,总共就涉及布局文件item_event_rank.xml
和适配器eventType_rank_A .java
,不需要处理实体类和逻辑Activity
我在适配器里面注释了,看一下需要改的就行
package com.skyinfor.szls.BottomFragment.Adaptor;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;
import com.skyinfor.szls.BottomFragment.entityClass.eventType_rank_C;
import com.skyinfor.szls.R;
import java.util.ArrayList;
public class eventType_rank_A extends BaseAdapter implements ListAdapter {
private ArrayList<eventType_rank_C> eventType_rank_cArrayList;
private int id;
private Context context;
private LayoutInflater inflater;
public eventType_rank_A(int sub_item, Context context, ArrayList<eventType_rank_C> eventType_rank_cArrayList) {
this.eventType_rank_cArrayList = eventType_rank_cArrayList;
this.context = context;
this.id = sub_item;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return eventType_rank_cArrayList.size();
}
@Override
public Object getItem(int i) {
return eventType_rank_cArrayList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@SuppressLint("WrongConstant")
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
i = i+1;//这边是为了从1开始
TextView item_id = null;//这textview是新加的,布局里面也要加一下
TextView tv_event_type_name = null;
TextView tv_percentage = null;
TextView tv_count = null;
ViewHolder viewHolder;
if (view == null) {
view = inflater.inflate(id, null);
tv_event_type_name = (TextView) view.findViewById(R.id.tv_event_type_name);
tv_percentage = (TextView) view.findViewById(R.id.tv_percentage);
tv_count = (TextView) view.findViewById(R.id.tv_count);
item_id = (TextView) view.findViewById(R.id.item_id);//找到布局
view.setTag(new ViewHolder(tv_event_type_name,tv_percentage, tv_count,item_id));
} else {
ViewHolder viewHolder1 = (ViewHolder) view.getTag(); // 重新获取ViewHolder
tv_event_type_name = viewHolder1.tv_event_type_name;
tv_percentage = viewHolder1.tv_percentage;
tv_count = viewHolder1.tv_count;
item_id = viewHolder1.item_id;
}
eventType_rank_C eventType_rank_c = (eventType_rank_C) eventType_rank_cArrayList.get(i); // 获取当前项的实例
tv_event_type_name.setText(eventType_rank_c.getEvent_type_name().toString());//对象为空
tv_percentage.setText(eventType_rank_c.getPercentage().toString());
tv_count.setText(eventType_rank_c.getCount().toString());
item_id.setText(i+"");//i是int类型,这样写是用来转string类型用的
return view;
}
private final class ViewHolder {
TextView tv_event_type_name = null;
TextView tv_percentage = null;
TextView tv_count = null;
TextView item_id = null;//注意都要加
//注意参数都要加
public ViewHolder(TextView tv_event_type_name,TextView tv_percentage, TextView tv_count, TextView item_id) {
this.tv_event_type_name = tv_event_type_name;
this.tv_percentage = tv_percentage;
this.tv_count = tv_count;
this.item_id = item_id;//注意都要加
}
}
}
接下来是布局着重看一下
<TextView
android:id="@+id/item_id"
android:layout_width="30dp"
android:layout_height="match_parent"
android:gravity="center"
android:paddingLeft="10dp"
android:text="1"
android:textSize="12dp" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="6dp"
android:paddingRight="10dp"
android:paddingBottom="4dp">
<TextView
android:id="@+id/item_id"
android:layout_width="30dp"
android:layout_height="match_parent"
android:gravity="center"
android:paddingLeft="10dp"
android:text="1"
android:textSize="12dp" />
<TextView
android:id="@+id/tv_event_type_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|left"
android:text="类型"
android:textColor="#2c2c2c"
android:textSize="12dp" />
<TextView
android:id="@+id/tv_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="数量"
android:textColor="#2c2c2c"
android:textSize="12dp" />
<TextView
android:id="@+id/tv_percentage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:text="百分比"
android:textColor="#2c2c2c"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
实体类,没有用到,看看即可,我没做处理
package com.skyinfor.szls.BottomFragment.entityClass;
public class eventType_rank_C {
// [{"count":2850,"event_type_name":"安全帽检测","percentage":"44.71%"}]
private String count,event_type_name,percentage,item_id;
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
public String getEvent_type_name() {
return event_type_name;
}
public void setEvent_type_name(String event_type_name) {
this.event_type_name = event_type_name;
}
public String getPercentage() {
return percentage;
}
public void setPercentage(String percentage) {
this.percentage = percentage;
}
public String getItem_id() {
return item_id;
}
public void setItem_id(String item_id) {
this.item_id = item_id;
}
}