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

news2024/11/28 16:54:09

布局文件:

/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.coloradmin.cn/o/1851345.html

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

相关文章

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

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

Linux-PXE批量安装

一、部署 PXE 远程安装服务 在大规模的 Linux 应用环境中&#xff0c;如 Web 群集、分布式计算等&#xff0c;服务器往往并不配备光驱设备&#xff0c;在这种情况下&#xff0c;如何为数十乃至上百台服务器裸机快速安装系统呢&#xff1f;传统的 USB光驱、移动硬盘等安装方法显…

使用Mixamo极简绑骨,导入unity中使用

如果你只想专注于角色建模&#xff0c;对于动画设计没有过多精力&#xff1b;如果你想白嫖别人的角色动画&#xff0c;用到自己的模型上&#xff1b;那么&#xff0c;这个网站很适合你&#xff1a;https://www.mixamo.com/ 操作步骤&#xff1a; 首先将自己的模型上传到这个网…

EOS black灵魂回响黑色无法联机/联机报错/联机失败怎么办

灵魂回响黑色EOS black中的职业系统&#xff0c;自由度非常高。从人物属性的精细调整&#xff0c;到装备属性的独特搭配&#xff0c;再到技能的个性化组合&#xff0c;每一步都充满了无限可能。更为惊喜的是&#xff0c;游戏中的角色职业不是一成不变的&#xff0c;而是随着手中…

公共网络IP地址不正确?别担心,这里有解决方案

在数字化时代&#xff0c;公共网络IP地址的正确性对于我们的在线体验至关重要。它不仅是网络连接的标识&#xff0c;更是确保我们正常访问互联网资源、享受网络服务的基础。然而&#xff0c;有时我们可能会遇到公共网络IP地址不正确的情况&#xff0c;这不仅会影响我们的网络速…

为什么五笔没人用了?

五笔输入法现在较少人使用的原因主要有以下几点&#xff1a; 学习门槛高&#xff1a;五笔输入法的学习难度相对较大&#xff0c;需要掌握所有的字根&#xff0c;全面了解编码的规律&#xff0c;并学习每个字的拆字原则&#xff0c;这要求用户有相当高的耐心和时间去学习和练习…

python自动化办公工具:自动批量生成奖状的工具(可视化)

&#x1f446;点击关注 获取更多编程干货&#x1f446; 不知道大家有没有注意到一种趋势&#xff0c;现在即便是那些非程序员&#xff0c;甚至对计算机一窍不通的人&#xff0c;也开始学习Python了&#xff0c;其“普及程度”实在让人感到有些惊讶。 那么&#xff0c;对于那些…

用RNN构建人名分类器

目录 项目综述1.导入必备的工具包2.处理数据&#xff0c;满足训练要求2.1 统计常用的字符2.2 进行规范化处理,去除重音符号2.3 将文件读取到内存中2.4 构建人名国家和具体人名的对应关系2.5 one-hot编码 3.构建RNN模型3.1 构建传统RNN模型3.2 构建传统LSTM模型3.3 构建传统GRU模…

springboot学习01-[springboot介绍、配置文件介绍、自动配置读取原理]

springboot介绍、配置文件介绍、自动配置读取原理 springBoot学习代码说明为什么java -jar springJar包后项目就可以启动 配置文件介绍配置文件加载顺序其他约定配置文件加载顺序profile配置文件加载配置文件绑定类属性通过Value的方式进行属性注入通过ConfigurationProperties…

Springboot 集成 Shardingsphere-JDBC

Springboot 集成 Shardingsphere-JDBC Shardingsphere系列目录&#xff1a;背景前提新增依赖分表策略简单分库分表策略垂直分库广播表水平分库(单表)水平分库(多表)水平分表 HINT配置逻辑代码 自定义分库分表&#xff08;精准定位范围查询&#xff09;配置代码精准定位数据库精…

计算机系统基础实训七-MallocLab实验

实验目的与要求 1、让学生理解动态内存分配的工作原理&#xff1b; 2、让学生应用指针、系统级编程的相关知识&#xff1b; 3、让学生应用各种动态内存分配器的实现方法&#xff1b; 实验原理与内容 &#xff08;1&#xff09;动态内存分配器基本原理 动态内存分配器维护…

python入门基础知识(错误和异常)

本文部分内容来自菜鸟教程Python 基础教程 | 菜鸟教程 (runoob.com) 本人负责概括总结代码实现。 以此达到快速复习目的 目录 语法错误 异常 异常处理 try/except try/except...else try-finally 语句 抛出异常 用户自定义异常 内置异常类型 常见的标准异常类型 语法…

Java赋值运算符

Java赋值运算符分为以下&#xff1a; 符号 作用 说明 赋值 int a 10,把10赋值给变量a 加后赋值 ab,将ab的值赋值给变量a - 减后赋值 a-b,将a-b的值赋值给变量a* 乘后赋值 a*b,将a*b的值赋值给变量a / 除后赋值 a/b,将a/b的值赋值给变量a % 取余赋值 a%b,将a%b的值赋值给变量…

全面国产化之路-信创

概叙 信创&#xff0c;即信息技术应用创新产业&#xff0c;这个词儿最早来源于“信创工委会”&#xff08;全称是信息技术应用创新工作委员会&#xff09;&#xff0c;是在2016年由24家专业从事软硬件关键技术研究及应用的国内单位共同发起成立的一个非营利性社会组织。后…

qt+halcon实战

注意建QT工程项目用的是MSVC&#xff0c;如果选成MinGW,则会报错 INCLUDEPATH $$PWD/include INCLUDEPATH $$PWD/include/halconcppLIBS $$PWD/lib/x64-win64/halconcpp.lib LIBS $$PWD/lib/x64-win64/halcon.lib#include "halconcpp/HalconCpp.h" #include &quo…

一个漂亮的网站收藏函数

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>网站收藏</title><style>body …

会自动清除的文件——tempfile

原文链接&#xff1a;http://www.juzicode.com/python-tutorial-tempfile/ 在某些不需要持久保存文件的场景下&#xff0c;可以用tempfile模块生成临时文件或者文件夹&#xff0c;这些临时文件或者文件夹在使用完之后就会自动删除。 NamedTemporaryFile用来创建临时文件&…

Gradle学习-1

1、APK构建流程 2、Gradle的安装 &#xff08;1&#xff09;安装Java JDK JAVA JDK 下载地址下载安装后需要配置环境变量gradle是运行在Java虚拟机上的&#xff0c;所以需要配置Java JDK &#xff08;2&#xff09;安装 Gradle Gradle下载官网下载安装后需要配置环境变量 …

跨行业数据资产共享与协同:构建一体化数据共享平台,解锁数据资产潜力,促进多行业数据流通与深度应用,共创数字化转型新篇章,引领行业发展新趋势,开启智慧互联新纪元

一、引言 随着信息技术的飞速发展&#xff0c;数据已成为推动社会进步和经济发展的关键要素。然而&#xff0c;在传统行业领域&#xff0c;数据往往被限制在各自的“孤岛”中&#xff0c;难以实现跨行业的流通与共享。这不仅限制了数据的价值发挥&#xff0c;也阻碍了行业的创…

show/hide信号演示

代码&#xff1a; #include <gtk-2.0/gtk/gtk.h> #include <gtk-2.0/gdk/gdkkeysyms.h> #include <glib-2.0/glib.h> #include <stdio.h>gint delete_event(GtkWidget *window, GdkEvent *event, gpointer data) {gtk_widget_hide(window);return TRU…