Android记录3--ExpandableListView使用+获取SIM卡状态信息

布局文件:

/SIM_Card_Demo/res/layout/inbox.xml

<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”

android:background=“@drawable/bg”

android:orientation=“vertical” >

<RelativeLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:background=“@drawable/banner_bg” >

<ImageButton

android:id=“@+id/imgBtn_Sort”

android:layout_width=“@dimen/banner_btn_width”

android:layout_height=“wrap_content”

android:background=“@drawable/banner_btn_bg_selector”

android:src=“@drawable/sort” />

<ImageView

android:id=“@+id/img_DividerSort”

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_toRightOf=“@+id/imgBtn_Sort”

android:src=“@drawable/banner_divider” />

<ImageView

android:id=“@+id/img_DividerSearch”

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_toLeftOf=“@+id/imgBtn_Search”

android:src=“@drawable/banner_divider” />

<LinearLayout

android:id=“@+id/linear_Title”

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_centerHorizontal=“true”

android:gravity=“center_vertical” >

<TextView

android:id=“@+id/text_Title”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“@string/inbox”

android:textColor=“@color/white”

android:textSize=“22sp”

android:textStyle=“bold” />

<TextView

android:id=“@+id/text_MailCount”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“(0/0)”

android:textColor=“@color/white”

android:textSize=“14sp”

android:textStyle=“bold” />

<RelativeLayout

android:layout_width=“40dp”

android:layout_height=“42dp”

android:layout_alignParentRight=“true”

android:layout_marginRight=“54dp” >

<ImageView

android:id=“@+id/img_Synchronizing”

android:layout_width=“18dp”

android:layout_height=“18dp”

android:layout_centerInParent=“true”

android:contentDescription=“@string/empty”

android:scaleType=“fitXY”

android:src=“@drawable/synchronizing” />

<ImageButton

android:id=“@+id/imgBtn_Search”

android:layout_width=“@dimen/banner_btn_width”

android:layout_height=“wrap_content”

android:layout_alignParentRight=“true”

android:background=“@drawable/banner_btn_bg_selector”

android:contentDescription=“@string/search”

android:src=“@drawable/search” />

<RelativeLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent” >

<ExpandableListView

android:id=“@+id/list_Inbox”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:cacheColorHint=“@color/transparent”

android:childDivider=“@color/transparent”

android:divider=“@drawable/list_divider”

android:fastScrollEnabled=“true”

android:groupIndicator=“@color/transparent”

android:listSelector=“@color/transparent”

android:scrollbars=“none” />

组列表项

/SIM_Card_Demo/res/layout/group_item.xml

<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”

android:background=“@drawable/bg”

android:orientation=“vertical” >

<RelativeLayout

android:layout_width="
match_parent"

android:layout_height=“wrap_content”

android:background=“@drawable/banner_bg” >

<ImageButton

android:id=“@+id/imgBtn_Sort”

android:layout_width=“@dimen/banner_btn_width”

android:layout_height=“wrap_content”

android:background=“@drawable/banner_btn_bg_selector”

android:src=“@drawable/sort” />

<ImageView

android:id=“@+id/img_DividerSort”

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_toRightOf=“@+id/imgBtn_Sort”

android:src=“@drawable/banner_divider” />

<ImageView

android:id=“@+id/img_DividerSearch”

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_toLeftOf=“@+id/imgBtn_Search”

android:src=“@drawable/banner_divider” />

<LinearLayout

android:id=“@+id/linear_Title”

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_centerHorizontal=“true”

android:gravity=“center_vertical” >

<TextView

android:id=“@+id/text_Title”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“@string/inbox”

android:textColor=“@color/white”

android:textSize=“22sp”

android:textStyle=“bold” />

<TextView

android:id=“@+id/text_MailCount”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“(0/0)”

android:textColor=“@color/white”

android:textSize=“14sp”

android:textStyle=“bold” />

<RelativeLayout

android:layout_width=“40dp”

android:layout_height=“42dp”

android:layout_alignParentRight=“true”

android:layout_marginRight=“54dp” >

<ImageView

android:id=“@+id/img_Synchronizing”

android:layout_width=“18dp”

android:layout_height=“18dp”

android:layout_centerInParent=“true”

android:contentDescription=“@string/empty”

android:scaleType=“fitXY”

android:src=“@drawable/synchronizing” />

<ImageButton

android:id=“@+id/imgBtn_Search”

android:layout_width=“@dimen/banner_btn_width”

android:layout_height=“wrap_content”

android:layout_alignParentRight=“true”

android:background=“@drawable/banner_btn_bg_selector”

android:contentDescription=“@string/search”

android:src=“@drawable/search” />

<RelativeLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent” >

<ExpandableListView

android:id=“@+id/list_Inbox”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:cacheColorHint=“@color/transparent”

android:childDivider=“@color/transparent”

android:divider=“@drawable/list_divider”

android:fastScrollEnabled=“true”

android:groupIndicator=“@color/transparent”

android:listSelector=“@color/transparent”

android:scrollbars=“none” />

子列表项

/SIM_Card_Demo/res/layout/child_item.xml

<?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:orientation=“vertical”

android:background=“@drawable/item_bg”

<TextView

android:id=“@+id/textView1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:textColor=“#ffff0000”

android:text=“SIM卡状态:” />

<TextView

android:id=“@+id/tv_sim_status”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:textColor=“#ff00ff00”

android:text=“@string/app_name” />

自定义适配器(重要)

/SIM_Card_Demo/src/com/wwj/sim/demo/InboxListAdapter.java

package com.wwj.sim.demo;

import java.util.List;

import java.util.Map;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseExpandableListAdapter;

import android.widget.ExpandableListView;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.TextView;

/**

  • 自定义下列列表适配器

  • @author wwj

  • 注:要继承BaseExpandableListAdpater

*/

public class InboxListAdapter extends BaseExpandableListAdapter {

private Inbox inbox;

private ExpandableListView list_Inbox;

private List<Map<String, Object>> groupList;

private List<Map<String, String>> childList;

private LayoutInflater inflater;

/**

  • 构造函数

  • @param inbox

  •        Activity对象引用
    
  • @param list_Inbox

  •        下拉列表对象引用
    
  • @param data

  •        数据
    

*/

public InboxListAdapter(Inbox inbox, ExpandableListView list_Inbox,

List<Map<String, Object>> groupList,

List<Map<String, String>> childList) {

super();

this.inbox = inbox;

this.list_Inbox = list_Inbox;

this.groupList = groupList;

this.childList = childList;

inflater = LayoutInflater.from(inbox);

}

/**

  • @author wwj

*/

private class GroupViewHolder {

ImageButton imgBtn_Photo;

TextView tv_name;

TextView tv_number;

TextView tv_details;

ImageView img_status;

public GroupViewHolder(View convertView) {

imgBtn_Photo = (ImageButton) convertView

.findViewById(R.id.imgBtn_Photo);

img_status = (ImageView) convertView.findViewById(R.id.img_Status);

tv_details = (TextView) convertView.findViewById(R.id.text_Details);

tv_name = (TextView) convertView.findViewById(R.id.text_Name);

tv_number = (TextView) convertView.findViewById(R.id.text_Number);

// 这个是防止图片聚焦,造成列表不能点击

imgBtn_Photo.setFocusable(false);

}

}

private class ChildViewHolder {

TextView tv_sim_status;

public ChildViewHolder(View converView) {

tv_sim_status = (TextView) converView

.findViewById(R.id.tv_sim_status);

}

}

@Override

public Object getChild(int groupPosition, int childPosition) {

return childPosition;

}

@Override

public long getChildId(int groupPosition, int childPosition) {

return childPosition;

}

@Override

public View getChildView(int groupPosition, int childPosition,

boolean isLastChild, View converView, ViewGroup parent) {

final ChildViewHolder childViewHolder;

if (converView == null) {

converView = inflater.inflate(R.layout.child_item, null);

childViewHolder = new ChildViewHolder(converView);

converView.setTag(childViewHolder);

} else {

childViewHolder = (ChildViewHolder) converView.getTag();

}

childViewHolder.tv_sim_status.setText(childList.get(childPosition)

.get(“tv_sim_status”));

return converView;

}

@Override

public int getChildrenCount(int groupPosition) {

return childList.size();

}

@Override

public Object getGroup(int groupPosition) {

return groupList.get(groupPosition);

}

@Override

public int getGroupCount() {

return groupList.size();

}

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

@Override

public View getGroupView(int groupPosition, boolean isExpanded,

View convertView, ViewGroup parent) {

final GroupViewHolder groupViewHolder;

if (convertView == null) {

convertView = inflater.inflate(R.layout.group_item, null);

groupViewHolder = new GroupViewHolder(convertView);

convertView.setTag(groupViewHolder);

} else {

groupViewHolder = (GroupViewHolder) convertView.getTag();

}

groupViewHolder.img_status.setImageResource(R.drawable.mail_status_new);

groupViewHolder.tv_name.setText(groupList.get(groupPosition)

.get(“username”).toString());

groupViewHolder.tv_number.setText(groupList.get(groupPosition)

.get(“number”).toString());

groupViewHolder.tv_details.setText(groupList.get(groupPosition)

.get(“detail”).toString());

groupViewHolder.imgBtn_Photo

.setImageResource(R.drawable.contact_photo_default);

return convertView;

}

@Override

public boolean hasStableIds() {

return false;

}

@Override

public boolean isChildSelectable(int arg0, int arg1) {

return false;

}

}

/SIM_Card_Demo/src/com/wwj/sim/demo/Inbox.java

package com.wwj.sim.demo;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.telephony.TelephonyManager;

import android.widget.ExpandableListView;

public class Inbox extends Activity {

public ExpandableListView list_Inbox; //下拉List控件

public InboxListAdapter adapter;

private TelephonyManager telephonyManager; //用来获取电话的一些信息

List<Map<String, Object>> groupList;

List<Map<String, String>> childList;

String sim_status;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.inbox);

sim_status = readSIMCard();

getData();

//找到这个控件

list_Inbox = (ExpandableListView) findViewById(R.id.list_Inbox);

list_Inbox.setAdapter(new InboxListAdapter(Inbox.this, list_Inbox, groupList, childList));

list_Inbox.setOnGroupExpandListener(new OneListItemExpandListener(list_Inbox));

}

void getData() {

groupList = new ArrayList<Map<String,Object>>();

Map<String, Object> groupMap = new HashMap<String, Object>();

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
ildList;

String sim_status;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.inbox);

sim_status = readSIMCard();

getData();

//找到这个控件

list_Inbox = (ExpandableListView) findViewById(R.id.list_Inbox);

list_Inbox.setAdapter(new InboxListAdapter(Inbox.this, list_Inbox, groupList, childList));

list_Inbox.setOnGroupExpandListener(new OneListItemExpandListener(list_Inbox));

}

void getData() {

groupList = new ArrayList<Map<String,Object>>();

Map<String, Object> groupMap = new HashMap<String, Object>();

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-Go2zcc3s-1719020991130)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【代码】python实现一个BP神经网络-原理讲解与代码展示

​ 本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、BP神经网络原理回顾1.1 BP神经网络的结构简单回顾1.2.BP神经网络的训练算法流程 二、python实现BP神经网络代码2.1.数据介绍2.2.pytorch实现BP神经网络代码 在python中要如何使用代码实现一个BP神经网络呢…

使用Rsbuild构建基于Vue3+Vant4开发h5应用

目录 一、介绍 1.1 Vant介绍 1.2 Rsbuild介绍 1.3 Vue介绍 二、构建应用 1.第一步 2.第二步 3.第三步 4.第四步 5.第五步 6.在项目中使用 Vant4 组件 7.移动端适配Rem 8. 执行 cnpm run dev 启动项目 一、介绍 1.1 Vant介绍 Vant 是一个轻量、可定制的移动端组…

单机小游戏好上架的应用市场有哪些?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Vue3中的常见组件通信(超详细版)

Vue3中的常见组件通信 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $refs4. 默认…

Mac电脑FTP客户端推荐:Transmit 5 for Mac 中文版

Transmit 5是一款专为macOS平台设计的功能强大的FTP&#xff08;文件传输协议&#xff09;客户端软件。Transmit 5凭借其强大的功能、直观易用的界面和高效的性能&#xff0c;成为需要频繁进行文件传输和管理的个人用户和专业用户的理想选择。无论是对于新手还是经验丰富的用户…

Starlink全系卫星详细介绍,波段频谱、激光星间链路技术、数据传输速率等等

Starlink全系卫星详细介绍&#xff0c;波段频谱、激光星间链路技术、数据传输速率等等。 Starlink是SpaceX公司开发的一个低轨道&#xff08;LEO&#xff09;卫星网络系统&#xff0c;旨在为全球用户提供高速宽带互联网服务。截至2024年6月&#xff0c;Starlink已经发射并运行…

终于找到了免费的云服务器

今天朋友推荐了一个免费的云服务器&#xff1a;“阿贝云” 我最喜欢的是它的"免费虚拟主机"“免费云服务器”&#xff0c;省了我好多钱&#xff0c;我的使用感受是用起来经济实惠省心&#xff0c;不要钱的东西谁不喜欢呢&#xff0c;对于普通开发者来说&#xff0c;…

长尾式差分放大电路调零

长尾式放大电路用了两个参数相同的三极管&#xff0c;但实际上并没有完全相同的三极管&#xff0c;所以为了提高差分放大电路的对称性(一边电流增加多少&#xff0c;另一边电流减小多少&#xff0c;即能在电阻Re上产生的压降不变(后面做虚地处理))&#xff0c;在下图中加入可调…

【Linux 杂记】TOP命令

top命令用于动态显示系统中正在运行的进程的详细信息&#xff0c;以及系统的整体资源使用情况。以下是其主要输出解释&#xff1a; Header 表头信息&#xff1a; top&#xff1a;当前时间和运行时间。Tasks&#xff1a;进程统计信息&#xff0c;如总进程数、运行中、睡眠中等。…

xocde编辑器支持修改为中文吗?不支持

xocde编辑器支持修改为中文吗&#xff1f; 不支持

rttys服务器和客户端

rttys服务器 1.下载 https://github.com/zhaojh329/rttys/releases2.解压运行 libev交叉编译 cd libev ./configure --hostarm-linux CCaarch64-poky-linux-gcc --prefix/home/michael/rtty_install make install DESTDIR/home/michael/rtty_installrtty客户端 1.git地…

RabbitMQ —— 理解及应用场景

一、MQ相关的概念 RabbitMQ 是一种分布式消息中间件&#xff0c;消息中间件也称消息队列MQ&#xff0c;那么什么是MQ呢&#xff1f;请继续阅读下文。 1.1、MQ的基本概念 什么是MQ MQ(message queue)&#xff0c;从字面意思上看就个 FIFO 先入先出的队列&#xff0c;只不过队列…

2024 年解锁 Android 手机的 7 种简便方法

您是否忘记了 Android 手机的 Android 锁屏密码&#xff0c;并且您的手机已被锁定&#xff1f;您需要使用锁屏解锁 Android 手机&#xff1f;别担心&#xff0c;您不是唯一一个忘记密码的人。我将向您展示如何解锁 Android 手机的锁屏。 密码 PIN 可保护您的 Android 手机和 G…

Node.js中基于node-schedule实现定时任务之详解

文章目录 一、定时任务二、node-schedule、1、安装2、引入3、基于Cron表达式的规则4、基于Date的规则5、基于RecurrenceRule的规则6、API7、状态监听 一、定时任务 实际工作中&#xff0c;可能会遇到定时清除某个文件夹内容&#xff0c;定时发送消息或发送邮件给指定用户&…

Django集成OpenAI

Django集成OpenAI 通过前面 django 框架的基本开发知识&#xff0c;我们现在可以开始在 django 上做稍微深一点当然应用开发了。 这一章开始编写怎么集成调用 openai &#xff0c;设置环境以及 openai 的基础知识。 大家都知道 ai 的多模态逐渐扩大&#xff0c;各种应用层出…

怎么采集阿里巴巴1688的商品或商家数据?

怎么使用简数采集器批量采集阿里巴巴1688的商品或商家相关信息呢&#xff1f; 简数采集器暂时不支持采集阿里巴巴1688的相关数据&#xff0c;谢谢。 简数采集器采集网络网页数据非常简单高效&#xff1a;输入要采集的网址&#xff0c;简数智能算法会自动提取出网页上的关键信…

Charles抓取安卓应用https包演示

一、准备软件 夜神安卓模拟器 (yeshen.com) Charles (charlesproxy.com) 二、配置抓包 2.1 Charles安装PC根证书 记住这里的ip端口 三、安卓模拟器配置 3.1 配置安卓客户端网络代理 填写上文的ip端口&#xff0c;保存 3.2 安装根证书 3.2.1 导出根证书 linux主机执行 op…

推荐4款实用工具,非常好用,建议收藏

PDFREAL PDFReal 是一个功能强大的在线PDF编辑工具&#xff0c;提供多种实用的PDF处理功能。用户可以在一个网站上完成包括PDF合并、PDF拆分、PDF压缩、PDF保护、PDF解锁等多种操作。此外&#xff0c;PDFReal 还支持将文本转换为PDF、将图片转换为PDF、添加水印、提取页面内容等…

基于Django、Bootstrap的电影推荐系统,算法基于用户的协同过滤算法,有爬虫有可视化后台

背景 基于Django和Bootstrap的电影推荐系统结合了用户协同过滤算法&#xff0c;通过爬虫技术获取电影数据&#xff0c;并在可视化后台展示推荐结果。该系统旨在提供个性化的电影推荐服务&#xff0c;帮助用户发现符合其喜好的电影。 用户协同过滤算法是一种常用的推荐算法&am…

qt开发-09_分裂器

QSplitter 是 Qt 框架中的一个非常实用的控件&#xff0c;用于创建可调整大小的窗格。它允许用户通过拖动子窗口间的边界&#xff08;也称为分割条&#xff09;来动态调整子窗口的尺寸。这在开发需要多个视图同时显示&#xff0c;且用户需要根据需要调整每个视图大小的应用程序…