将项目和子项目添加到 ListView

2023-12-29

我有以下 XML 文件,仅包含ListView

<RelativeLayout 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" >

    <ListView android:id="@+id/lview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        ></ListView>


</RelativeLayout>

我想将项目和子项目添加到此 ListView。

我的应用程序根据用户的请求进行某种类型的搜索并获取数据,我希望检索到的这些数据在 ListView 中可见。 有没有简单的方法,例如:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    lv1 = (ListView) findViewById(R.id.lview);
    lv1.add(item,subitem,0) // where 0 is the position.. any method like this?
}

如果您想在每行中填充许多数据项的数组列表,您必须实现一个自定义适配器和一个getView像这样的方法:

    public class tasksRepositoryAdapter extends ArrayAdapter<Task>
{   
    private ArrayList<Task> list;

    public tasksRepositoryAdapter(Context context, int textViewResourceId, List<Task> tasksRepository) 
    {
        super(context, textViewResourceId, tasksRepository);
         this.list = new ArrayList<Task>();
         for (Task task : tasksRepository)
            {
                this.list.add(task);
            }
    }

    public View getView(final int position, View convertView, ViewGroup parent)
    {
        View row;
        final ViewHolder holder = new ViewHolder();
        tfRobotoRegular = Typeface.createFromAsset(getAssets(),"Roboto-Regular.ttf");

        LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflator.inflate(R.layout.new_row, null);
        holder.tvTitle = (TextView) row.findViewById(R.id.text_title);
        String title = tasksRepository.get(position).getTitle();
        if (title.length()>25)
        {
            title = title.substring(0, 24);
            title = title + "...";
        }
        holder.tvTitle.setText(title);
        holder.tvTitle.setTypeface(tfRobotoRegular);
        holder.tvDate = (TextView) row.findViewById(R.id.text_date);
        holder.tvDate.setText(tasksRepository.get(position).getDate());
        holder.tvDate.setTypeface(tfRobotoRegular);
        holder.tvTime = (TextView) row.findViewById(R.id.text_time);
        holder.tvTime.setText(tasksRepository.get(position).getTime());
        holder.tvTime.setTypeface(tfRobotoRegular);
        holder.tvDescription = (TextView) row.findViewById(R.id.text_description);
        String description = tasksRepository.get(position).getDescription();
        if (description.length()>46)
        {
            description = description.substring(0, 45);
            description = description + "...";
        }
        holder.tvDescription.setText(description);
        holder.tvDescription.setTypeface(tfRobotoRegular);
        holder.tvId = (TextView) row.findViewById(R.id.text_id);
        holder.tvId.setText(String.valueOf(tasksRepository.get(position).getId()));
        holder.tvId.setTypeface(tfRobotoRegular);
        holder.tvLocation = (TextView) row.findViewById(R.id.text_location);
        holder.tvLocation.setText(tasksRepository.get(position).getCity());
        holder.llRowLayout = (LinearLayout) row.findViewById(R.id.llRowLayout);
        holder.imCalendar = (ImageView) row.findViewById(R.id.iCalendar);
        holder.imClock = (ImageView) row.findViewById(R.id.iClock);
        holder.imLocation = (ImageView) row.findViewById(R.id.iLocation);

        holder.imTaskStatusButton = (ImageView) row.findViewById(R.id.iTaskStatusButton);
        holder.imTaskStatusButton.setTag(position);
        holder.imTaskStatusButton.setOnClickListener(new OnClickListener() 
        {
            public void onClick(View v) 
            {
                 int[] location = new int[2];
                 currentRowId = position;
                 currentRow = v;    
                 // Get the x, y location and store it in the location[] array
                 // location[0] = x, location[1] = y.
                 v.getLocationOnScreen(location);

                 //Initialize the Point with x, and y positions
                 point = new Point();
                 point.x = location[0];
                 point.y = location[1];
                 showStatusPopup(TasksListActivity.this, point);
            }
        });     
        String status = tasksRepository.get(position).getStatus();
        Log.d(TAG, "The status of the current row: "+ status );
        setStatusColorImages(status, holder.imClock, holder.imCalendar, holder.imLocation, holder.llRowLayout); 

        return row;
    }
}

和视图持有者:

static class ViewHolder
{
    RelativeLayout rlTitle;
    LinearLayout llRowLayout;
    TextView tvId;
    TextView tvTitle;
    TextView tvDate;
    TextView tvTime;
    TextView tvDescription;
    TextView tvLocation;
    ImageView imClock;
    ImageView imCalendar;
    ImageView imLocation;
    ImageView imTaskStatusButton;
}

在这种情况下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将项目和子项目添加到 ListView 的相关文章

  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript

随机推荐

  • 无法安装包车

    我在 Linux mint 17 3 64 位中使用 R 版本 3 2 3 我试图安装包 car dependencies TRUE 但安装失败并出现以下错误消息 gt warnings Warning messages 1 In inst
  • 通过 VBA 使用 SFTP 下载文件

    我的目标是从 SFTP 服务器下载文件 而不是上传文件 并且我正在尝试调整本网站上另一个问题的代码来执行此操作 为了方便起见 我粘贴了下面的代码 我从 Putty 下载了 PSFTP 当我尝试使用以下命令行进行连接时 PSFTP 关闭 op
  • PHP 比较和更改多维数组中的某些元素

    简而言之 我有两个简单的数组 我想验证第二个数组中的某些键是否具有空值 并将它们替换为第一个数组中的对应值 Example a1 1 gt one 2 gt two 3 gt three 5 gt cinco 6 gt six a2 2 g
  • 数据绑定如何工作?

    我现在正在尝试将数据添加到列表框中 如果您查看我的 XAML 这是我构建的列表框
  • 无法访问 Chrome 中另一个框架的内容

    我有两个框架 两个框架中的页面都来自同一域 本地主机或活动域 都使用相同的协议 当第二个框架 xsample 完全加载并且任何 onload JS 函数完成时 第一个框架需要访问第二个框架 xsample 的元素 但第二帧需要一段时间才能加
  • 在 codeigniter 中创建父树及其子树

    我正在 codeigniter 中工作 我想在父代理下显示父代理及其子代理 我的父代理数据显示如下 Array 0 gt stdClass Object id gt 1 Introducer code gt 0 Designation gt
  • PHP 速记加法运算符 - 未定义的偏移量

    我使用 PHP 速记加法运算符来统计多维数组中特定 id 出现的次数 source tally array foreach items as item source tally item gt getId 1 第一次遇到新 id 时 它将其
  • 是否有可能始终消除 goto?

    在做好一切的同时withgoto 很容易 由 f ex IL 证明 我想知道是否也可以消除all具有更高级别表达式和语句的 goto 语句 例如 使用 Java 支持的所有内容 或者 如果您愿意 我正在寻找的是始终有效的 重写规则 无论 g
  • 如何让 ng-repeat 过滤掉重复的结果

    我正在运行一个简单的ng repeat通过 JSON 文件并想要获取类别名称 大约有 100 个对象 每个对象属于一个类别 但只有大约 6 个类别 我当前的代码是这样的
  • 在开发和生产环境中使用不同的Web.config

    我需要在 ASP NET 应用程序中使用不同的数据库连接字符串和 SMTP 服务器地址 具体取决于它的运行位置 开发环境或生产环境 应用程序通过以下方式从 Web config 文件读取设置WebConfigurationManager A
  • 如何在java中使用web服务时触发处理程序类

    Using Axis 1 4我构建了将使用外部服务器服务的客户端应用程序 服务器应用程序使用包含标头标记和正文标记的肥皂消息进行响应 我的标题标签问题 我试图找到方法来获取header元素 到目前为止做了什么 我发现我需要使用一个扩展的处理
  • 在 using 块中使用“as IDisposable”

    编辑 我的问题不是关于 using 块及其工作原理 我的问题是关于两种方法的差异 如下所示 我正在阅读 CQRS 旅程指南 但我不明白这行代码 using repo as IDisposable 这意味着什么 为什么使用它作为 IDispo
  • NSDate dateFromString,如何解析“周围”UTC、GMT 和用户区域设置?

    我从 xml 文件中解析一些值 有一个 25 12 2010 T 23 40 00 带有时间和日期的字符串 还有一个带有 GMT 偏移量的字符串 例如 0200 所以上面的时间是 12 月 25 日 23 40 00 时区 0200 GMT
  • Jest - 如何重置每个测试的对象状态?

    我是 Jest 新手 我试图弄清楚如何在每次测试后重置测试对象 当前代码 describe only POST request missing entry gt newBlog is the test object let newBlog
  • Jenkins -> 通过 Docker-Agents 循环

    我想使用几个构建一些包Docker 镜像 in a 詹金斯管道 下面的管道可以工作 但我想实现阶段是一种更 循环 的方式 pipeline agent label docker stages stage Running on ubuntu
  • 如何使用 SIFT 和 OpenCV 在图像中搜索目标?

    我正在开发一个简单的扑克牌检测程序 现在我有一个有效的筛选算法here http www aishack in 2010 07 implementing sift in opencv 我在卡片周围创建了一些边界框 然后我在要搜索的卡上使用
  • JSON 异常:org.json.JSONException:未终止的数组

    我正在开发一个 Android 应用程序 它从服务器请求一些数据 服务器以 JSON 格式返回数据 除了 API 之外 一切都工作正常 经过调试 我发现了这个异常 org json JSONException Unterminated ar
  • (错误)使用 C# 迭代器实现协程的陷阱

    我正在编写重构 Silverlight 程序以使用 WCF 服务中的部分现有业务逻辑 这样做时 我遇到了 Silverlight 3 中的限制 即只允许异步调用 WCF 服务 以避免长时间运行或无响应的服务调用阻塞 UI 线程的情况 SL
  • 如何让ios中的函数调用等待,直到该函数内的块执行完毕?

    在以下函数中 我使用了一个块 但是当我调用这个函数时 它甚至在块执行之前就返回了 我理解 Block 依次使用线程并单独执行 以便该函数不会等待它返回 但是 是否有任何其他方法可以让函数执行等待 或者有任何其他方法可以在不使用块本身的情况下
  • 将项目和子项目添加到 ListView

    我有以下 XML 文件 仅包含ListView