首页 > 其他分享 >Android实现列表ListView

Android实现列表ListView

时间:2024-06-08 19:54:44浏览次数:24  
标签:viewHolder dataList 列表 convertView import Android ListView public android

首先是创建一个基础的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);

实现数据的填入创建。

 

标签:viewHolder,dataList,列表,convertView,import,Android,ListView,public,android
From: https://www.cnblogs.com/syhxx/p/18238896

相关文章

  • 类和对象(下+)_const成员、初始化列表、友元、匿名对象
    类和对象(下+)文章目录类和对象(下+)前言一、const成员二、友元1.友元函数2.友元类三、初始化列表四、explicit关键字五、匿名对象总结前言static成员、内部类、const成员、初始化列表、友元、匿名对象一、const成员将const修饰的“成员函数”称之为const成员函数......
  • 从 Android 恢复已删除的备份录
    本文介绍了几种在Android上恢复丢失和删除的短信的方法。这些方法都不能保证一定成功,但您可能能够恢复一些短信或其中存储的文件。首先要尝试什么首先,尝试保留数据。如果你刚刚删除了信息,请立即将手机置于飞行模式,方法是按住电源按钮并在出现的菜单中选择飞行模式。......
  • 树开下拉列表数据源生成
    改自这位兄台的一段代码https://www.cnblogs.com/xiayang/archive/2010/07/19/1780566.html 1///<summary>2///生成一个树形的表样,3///</summary>4///<paramname="dtNodeSets">菜单记录数据所在的表</param>5///<paramn......
  • C++全栈聊天项目(20) 聊天列表动态加载
    聊天列表动态加载如果要动态加载聊天列表内容,我们可以在列表的滚动区域捕获鼠标滑轮事件,并且在滚动到底部的时候我们发送一个加载聊天用户的信号boolChatUserList::eventFilter(QObject*watched,QEvent*event){//检查事件是否是鼠标悬浮进入或离开if(wat......
  • Android Media Framework(四)Non-Tunneled组件的状态转换与buffer分配过程分析
    本篇将继续深入OpenMAXILSpec,详细解析Non-tunneled(非隧道)组件的初始化、数据传递以及组件销毁过程。通过阅读本篇内容,我们应能对Non-tunneled组件的buffer分配与状态转换过程有一个清晰的了解。1、组件初始化以下是ILSpec给的Non-tunneled组件初始化时序图:ILClient首先......
  • C++入门 初始化列表 & 隐式类型转换
    目录初始化列表构造函数体赋值初始化列表格式初始化列表特性每个成员变量在初始化列表中只能出现一次类中以下成员必须初始化尽量使用初始化列表初始化数组初始化 声明次序就是初始化顺序多参数初始化列表再谈隐式类型转换拷贝引用explicit关键字定义用法缺......
  • Android Media Framework - 开篇
    AndroidMedia多媒体框架全面解析开篇。前言AndroidMedia是一块非常庞大的内容,上到APP的书写,中到播放器的实现、封装格式的了解,下到编解码组件的封装、VPUAPI的了解,每块内容的学习都需要我们下很大的功夫。此外,我们还要对相关的模块进行了解,比如AudioFlinger、SurfaceFl......
  • 51.《一篇浅浅的搞懂Android四大组件之一内容提供者和观察者》
    一内容提供者背景:之前提到过内容提供者就是在访问数据的时候那么它因何诞生我们之前的数据访问像SQLite之类访问都是在当前应用程序访问那则么能行而其他应用程序之间的访问就需要这一组件的帮助画的有点粗糙但大致就是这样工作的B通过ContentResolver类访问A中Conte......
  • Android Media Framework(三)OpenMAX API阅读与分析
    这篇文章我们将聚焦ControlAPI的功能与用法,为实现OMXCore、Component打下坚实的基础。1、OMX_Core.hOMXCore在OpenMAXIL架构中的位置位于ILClient与实际的OMX组件之间,OMXCore提供了两组API给ILClient使用,一组API用于管理OMX组件,另一组API用于操作/使用创建的OMX组件。......
  • 创建Android studio项目出现connect time out
    创建Androidstudio项目出现connecttimeout解决方法:AndroidStudio导入项目后报错connecttimeout-知乎(zhihu.com) 在项目里面找到gradle-wrapper.properties文件,找到gradle版本 在下面网站找到对应版本下载Indexof/gradle/(tencent.com) 我的是8.0-bin,下......