Android:listview添加自增列序号

先看一下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;
    }
}

猜你喜欢

转载自blog.csdn.net/title71/article/details/113381493