Android实现列表ListView

首先是创建一个基础的item组件

<?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:id="@+id/item_container"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/id"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/leix"
        android:layout_weight="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/amo"
        android:layout_weight="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

在需要插入的页面写入ListView:

    <TextView
        android:id="@+id/amount"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_toLeftOf="@id/main_btn_edit"
        android:layout_alignBottom="@id/main_btn_edit"
        android:layout_marginRight="60dp"
        />

之后是实现代码的My Adapter:实现item传值

package com.syh.jizhangben;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.syh.jizhangben.pojo.JZB;
import com.syh.jizhangben.util.DBHelper;

import java.util.ArrayList;

public class MyAdapter extends BaseAdapter {
    private DBHelper dbHelper; // 确保DBHelper有适当的构造函数和删除方法
    private Context context;
    private ArrayList<JZB> dataList;

    public MyAdapter(Context context, ArrayList<JZB> dataList) {
        this.context = context;
        this.dataList = dataList;
        this.dbHelper = new DBHelper(context); // 初始化dbHelper
    }

    @Override
    public int getCount() {
        return dataList.size();
    }

    @Override
    public Object getItem(int position) {
        return dataList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if(convertView == null) {
            // inflate the layout
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(R.layout.find, parent, false);
            viewHolder = new ViewHolder();
           // viewHolder.itemView = convertView.findViewById(R.id.item_container);
            viewHolder.textViewId = convertView.findViewById(R.id.id);
            viewHolder.textViewType = convertView.findViewById(R.id.leix);
            viewHolder.textViewAmount = convertView.findViewById(R.id.amo);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        // set the data to textviews
        JZB currentItem = dataList.get(position);
        viewHolder.textViewId.setText(String.valueOf(currentItem.getId()));
        viewHolder.textViewType.setText(currentItem.getInorout());
        viewHolder.textViewAmount.setText(String.valueOf(currentItem.getAmount()));return convertView;
    }


    static class ViewHolder {
        public View itemView;
        TextView textViewId;
        TextView textViewType;
        TextView textViewAmount;
    }
}

在需要展示item列表的地方书写以下代码:

          ArrayList<JZB> filteredData;
filteredData = dbHelper.getAllDATA();
          MyAdapter adapter = new MyAdapter(getApplicationContext(), filteredData);
                ListView listView = findViewById(R.id.list_view_data);
                listView.setAdapter(adapter);

实现数据的填入创建。

 

posted @ 2024-06-08 19:51  一个小虎牙  阅读(2)  评论(0编辑  收藏  举报