Android开发(11)-利用listview控件显示person表中的所有数据(并实现点击触发拨号程序)

拼多多Android面试题及参考答案 Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。 阅读详情

Android开发(11)-利用listview控件显示person表中的所有数据(并实现点击触发拨号程序)

分类: java Android开发 347人阅读 评论(0) 收藏 举报

核心代码如下:

MainActivity.java

  1. package com.example.lession05_dbs;  
  2.   
  3. import java.util.List;  
  4.   
  5. import android.app.Activity;  
  6. import android.content.Intent;  
  7. import android.net.Uri;  
  8. import android.os.Bundle;  
  9. import android.view.Menu;  
  10. import android.view.View;  
  11. import android.view.ViewGroup;  
  12. import android.widget.AdapterView;  
  13. import android.widget.BaseAdapter;  
  14. import android.widget.ListView;  
  15. import android.widget.TextView;  
  16. import android.widget.Toast;  
  17.   
  18. import com.example.lession05_dbs.dao.PersonDao;  
  19. import com.example.lession05_dbs.dao.PersonDaoImpl;  
  20. import com.example.lession05_dbs.domain.Person;  
  21.   
  22. public class MainActivity extends Activity {  
  23.   
  24.     //listView控件  
  25.     public ListView listView;  
  26.     //显示所有的用户信息  
  27.     public List<Person> persons;  
  28.     //数据库操作的对象  
  29.     public PersonDao personDao ;  
  30.     @Override  
  31.     protected void onCreate(Bundle savedInstanceState) {  
  32.         super.onCreate(savedInstanceState);  
  33.         setContentView(R.layout.activity_main);  
  34.         //实例化数据库操作对象  
  35.         personDao = new PersonDaoImpl(MainActivity.this);  
  36.           
  37.         //执行查询数据  
  38.         persons = personDao.findAll();  
  39.           
  40.         //根据id获取控件对象  
  41.         listView = (ListView) findViewById(R.id.lv_persons);  
  42.         //设置显示的数据 Adpater  
  43.         listView.setAdapter(new PersonListAdapter());  
  44.           
  45.         //listView注册事件  
  46.         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
  47.   
  48.             /** 
  49.              * parent :listView 
  50.              * view 每个条目控件 
  51.              * position:条目所在的位置 
  52.              * id:行号 0  
  53.              */  
  54.             @Override  
  55.             public void onItemClick(AdapterView<?> parent, View view,  
  56.                     int position, long id) {  
  57.               
  58.                  TextView tv = (TextView) view;  
  59.                    
  60.                 // Toast.makeText(getApplicationContext(), tv.getText().toString(),Toast.LENGTH_LONG).show();  
  61.                   
  62.                  //获取控件的文本  
  63.               /*   String text = tv.getText().toString(); 
  64.                  //拆分 
  65.                  String arr[] =  text.split("-"); 
  66.                  //得到电话 
  67.                  String phone = arr[1]; 
  68.                  //意图 
  69.                  Intent intent = new Intent(); 
  70.                  //设置动作 
  71.                  intent.setAction(Intent.ACTION_CALL); 
  72.                  //设置数据 
  73.                  intent.setData(Uri.parse("tel:"+phone)); 
  74.                  //执行意图 
  75.                  startActivity(intent);*/  
  76.                    
  77.                 //parent listView   
  78.                 Person p =  (Person) parent.getItemAtPosition(position); //返回值 实际就是getItem返回的值  
  79.                /* //意图 
  80.                  Intent intent = new Intent(); 
  81.                  //设置动作 
  82.                  intent.setAction(Intent.ACTION_CALL); 
  83.                  //设置数据 
  84.                  intent.setData(Uri.parse("tel:"+p.getPhone())); 
  85.                  //执行意图 
  86.                  startActivity(intent); 
  87.                  */  
  88.                 // Toast.makeText(getApplicationContext(), p.getName(), Toast.LENGTH_LONG).show();  
  89.                   
  90.                int lid =  (int) parent.getItemIdAtPosition(position);  
  91.                  
  92.                //   
  93.                Toast.makeText(getApplicationContext(), lid+"", Toast.LENGTH_LONG).show();  
  94.                    
  95.                    
  96.                    
  97.             }  
  98.         });  
  99.     }  
  100.   
  101.     @Override  
  102.     public boolean onCreateOptionsMenu(Menu menu) {  
  103.         // Inflate the menu; this adds items to the action bar if it is present.  
  104.         getMenuInflater().inflate(R.menu.main, menu);  
  105.         return true;  
  106.     }  
  107.   
  108.       
  109.     class PersonListAdapter extends BaseAdapter{  
  110.   
  111.         //告诉你有多少个条目  
  112.         @Override  
  113.         public int getCount() {  
  114.             // TODO Auto-generated method stub  
  115.             return persons.size();  
  116.         }  
  117.   
  118.         //返回这个为控件对应的数据  
  119.         @Override  
  120.         public Object getItem(int position) {  
  121.             // TODO Auto-generated method stub  
  122.             return persons.get(position);  
  123.         }  
  124.   
  125.         //返回条目所在的位置  
  126.         @Override  
  127.         public long getItemId(int position) {  
  128.             // TODO Auto-generated method stub  
  129.             return position;  
  130.         }  
  131.   
  132.         @Override  
  133.         public View getView(int position, View convertView, ViewGroup parent) {  
  134.             //创建一个显示的控件  每个条目对应的控件  
  135.             TextView tv = new TextView(MainActivity.this);  
  136.             tv.setText(persons.get(position).getName()+"-"+persons.get(position).getPhone());  
  137.             return tv;  
  138.         }  
  139.           
  140.     }  
  141. }  
注意在清单文件中添加 拨号权限:

 <uses-permission android:name="android.permission.CALL_PHONE"/>

其他实体类,接口 和实现类,参见上篇博文

点击打开链接
EGO_Planner代码学习(三):px4ctrl代码流程 上节阅读了EGO_Planner的轨迹服务器部分的代码,其实质是将规划器生成的轨迹进行离散化,间隔10ms计算当前时刻在轨迹上的位置,并发送到话题上。这两天抽空看了下控制器部分的代码,在l这个软件包里,它的功能是进行px4的模式识别和上层控制,通过线性控制器把发布过来的位置命令解算成飞控的控制量,通过mavros发送给px4。下面就详细看一下它的启动过程。 阅读详情

相关推荐

Windows下Python多版本共存与切换的终极指南(含环境变量详解)

本文详细解析了在Windows系统下实现Python多版本共存与切换的完整方案。通过深入讲解环境变量Path的底层机制,提供了从安装策略、精细化Path管理到创建快速切换脚本的实战指南,并介绍了py启动器和虚拟环境等高级技巧,帮助开发者彻底解决版本冲突问题,提升开发效率。

v6b7n8m9q0的博客 538

Android数据显示之ListView

1.使用SimpleAdapter List&lt;Person&gt; persons = personService.getScrollData(0, 5); //构造SimpleAdapter的参数类型 List&lt;HashMap&lt;String, Object&gt;&gt; data = new ArrayList&lt;HashMap&...

编程资料大全 141

GXHT40温湿度传感器:I2C通信与CRC校验实战解析

本文详细解析GXHT40温湿度传感器的I2C通信协议与CRC校验机制,涵盖硬件连接、时序控制、数据读取及加热功能应用。通过实战案例分享优化技巧与异常处理,帮助开发者提升嵌入式系统中传感器数据的准确性与可靠性。

rgv234567的博客 242

使用ListView 显示数据

1、先定义item xml version="1.0" encoding="utf-8"?> LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="horizontal"       android:layout_width="fill_paren

曹浩洋的专栏 934

基于混合智能框架的景区边界范围预测与补全系统

摘要 本文提出一种混合智能框架,结合随机森林模型和GIS规则约束,解决景区边界缺失问题。系统基于Python和ArcGIS平台,利用多源地理空间数据训练随机森林分类器预测景区范围,并集成地形、水文、道路等GIS规则进行优化。实验结果表明,该方法能有效预测15000个景区的边界,精度优于单一模型。创新点在于: 1)数据驱动与知识驱动相结合的混合智能范式; 2)面向全国尺度的大规模边界补全; 3)提供完整的Python+ArcGIS实现方案。该系统为景区精细化管理提供了技术支撑,具有实用价值。

huanghm88的专栏 283

学Simulink——基于Simulink的超前-滞后校正控制器设计与仿真建模示例

本文完成了基于 Simulink 的超前-滞后校正控制器设计与仿真,实现了:✅掌握超前与滞后校正的物理意义与设计流程✅分步设计复合控制器,兼顾动态与稳态✅在 Simulink 中搭建闭环系统并验证卓越性能✅达成高稳定裕度、高精度、快速响应三大目标。

xiaoheshang_123的博客 79

android 解析

1.要解析的XML文件 要解析的文件 <?xml version="1.0" encoding="utf-8"?> <resources> <customer name="tom" age="20" gender="male"> <telphone> <phone>13636713128...

ysy_1_2的博客 281

SAP-ABAP:SAP Open SQL 分页技术深度解析:语法、性能陷阱与最佳实践

SAP Open SQL 分页技术深度解析:语法、性能陷阱与最佳实践

baidu_35680696的博客 634

我的android学习脚步----------- 的第一个应用

刚刚开始学android开发,以前都是在别人调好的应用中修改JNI,现在需要自己一步步走 开发环境:Eclipse+ADT 配置不多讲了,引自:http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html http://www.cnblogs.com/vamei/p/3889208.html http:...

weixin_30849591的博客 160

【声纳与人工智能融合——从理论前沿到自主系统实战】第一章 声纳AI的数据基础:仿真、数据集与表征学习

该数据集的特点是包含了多种底质背景(沙地、泥地、碎石区)与噪声条件,适合验证模型的背景抑制能力。Urashima数据集由日本海洋研究开发机构(JAMSTEC)发布,基于自主水下航行器(AUV)采集,包含前视声纳序列数据,主要用于水下导航与避障算法评估,其数据包含了精确的姿态与深度标注,支持三维场景重建算法的训练。北约海洋研究与实验中心(CMRE)发布的CMRE datasets包含侧扫与合成孔径声纳数据,特别适用于跨传感器域自适应研究,数据集中包含了同一区域的多种声纳成像结果,为跨模态学习提供了基准。

u012133341的博客 103

基于HetConv与Dual策略的YOLOv8轻量化设计-CSPHet结构的优化与实现

在计算机视觉中,YOLOv8作为目标检测领域的最新版本,通过引入多种改进来提升检测精度和速度。然而,提升精度和保持实时性能往往需要更多参数与计算量。本文提出一种结合Dual思想与HetConv的新型轻量化结构,称为CSPHet。CSPHet能够在保持YOLOv8检测精度的基础上有效减少约70万参数量,实现模型的轻量化和速度的提升。HetConv(Heterogeneous Convolution)是一种混合卷积技术,通过同时使用1x1、3x3等不同大小的卷积核,来捕捉不同尺度的特征。

博客 1324

基于BaseAdapter适配器和ListView控件的自定义显示

基于BaseAdapter适配器和ListView控件的自定义显示 本内容是本人经过网上学习和查看相关资料为学习记忆而整理。 直接上代码: package com.example.comtool; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import andro...

glj0007的博客 505

在Simulink中进行基于强化学习控制策略的三相逆变器仿真

本文详细介绍了在Simulink中实现基于强化学习控制策略的三相逆变器仿真的完整流程。主要内容包括:1)准备工作,确保MATLAB/Simulink及相关工具箱安装;2)构建三相逆变器基础模型,包含电源、全桥电路、LC滤波器和负载;3)重点阐述强化学习控制器设计,涉及状态空间、动作空间定义,奖励函数设计和算法选择;4)实现控制逻辑,包括环境创建、代理配置和训练过程;5)仿真设置与结果分析。文章强调了模型调试优化的重要性,并建议结合文献研究提升控制效果。该方案为开发自适应电力电子控制系统提供了实用指南。

amy_mhd的博客 271

基于 Qt 的智能门禁系统

基于Qt开发的智能门禁系统,集成了人脸识别认证、实时视频通话、远程开门控制等核心功能,适用于智能家居、办公楼宇、公寓门禁等场景。

丰锋的博客 279

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android内容提供者(群发短信)

工程目录: Manifests添加读取联系人权限 <uses-permission android:name="android.permission.READ_CONTACTS" /> ChooseAdapter package com.example.app6; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.V

苦涩精灵的博客 751

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android view 画线 listview,android 改变listview的item中view的值

一方面点击listview时,可以在重写的setOnItemClickListene()方法中获得item的view,从而改变例如:listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView> listView, View view, int p...

weixin_33218612的博客 296

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ListView四层优化的代码

ListView的优化主要在getView(int postion, View convertView, ViewGroup parent) 第二层优化 //1、加载 view 是根据 convertView 来判断是否加载,如果不为null 则加载,否则不加载 if(convertView == null){ convertView = View.inflate(Main

超超的博客 553

android listview图片错乱,ListView图片错位解决办法

imageLoader=ImageLoader.getInstance();imageLoader.init(ImageLoaderConfiguration.createDefault(context));options=newDisplayImageOptions.Builder().displayer(newRoundedBitmapDisplayer(0xff000000,1...

weixin_36321633的博客 332

用findViewById()获取ListView时的注意事项

@Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); //这句一定要放在onCreate方法最顶上! super.onCreate(savedInstanceState); //这句一定要放在setContentView下面! ListView l...

weixin_33908217的博客 1644

Android笔记——ListView(列表视图)

最近在安卓入门阶段苦苦挣扎,也看了很多入门的书,也一边在看兄弟连云课堂的视频,我觉得视频讲解的是我看过这么多讲解比较好的一个。其实他们讲解也是按照官方API文档来举例子讲解,下面我把这几天学习的内容整理一下,有些地方自己也没懂,欢迎大家指导。  ListView介绍:        列表视图是android中最常用的的一种视图组件,它以垂直列表的方式列出所需要显示的列表项,例如人名单,系统

飞鱼的专栏 1505

Android开发之ListView异步加载图片

坚持一件对自己有意义的事。。。

乐于分享,乐于讨论,欢迎大家积极讨论 8840

android person类_Collections类

Collections类注意, 是Collections类不是Collection接口1. Collections常用功能java.utils.Collections是集合工具类, 用来对集合进行操作.常用方法如下 : public static void shuffle(List <?> list): 打乱集合顺序.public static <T> void sort(...

weixin_39531761的博客 289

Android数据库Sqlite查询显示到ListView控件

本次博客来完成上次博客没有完成的项目,从数据库查询的数据显示到listview 话不多说直接上代码 首先我们要自定义一个适配器,继承 Baseadapter 来重写里面的方法 import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.

java web开发 9205

android person类_python 函数、类、模块、包

前面几篇文章讲解了 函数、类和变量,都是在一个 .py 文件中编写的,这个py文件就叫做模块。一个模块可以包含 变量、函数、类或者C、C++的扩展等等现在我定义一个 model.py 模块,里面定义变量、函数、类文件名称叫 model.py ,模块名词就叫 model一、模块定义:就是一个py文件(模块名.py)model模块模块用法:用上面 model 模块举例,新建一个模块 user_mode...

weixin_39734493的博客 303

Android数据库操作-表格显示

显示表格布局 完成后效果如下: 首先需要一个主布局文件main.xml view sourceprint? 01."http://schemas.android.com/apk/res/android" 02.    android:layout_width="fill_parent" 03.    android:layout_height="fill_paren

mypanlong的专栏 5400

android person类_Android 热修复原理(主要谈代码修复)

Android开发中,热修复技术被越来越多的开发者使用,市面上也出现很多成熟的开源框架。但对大部分开发者来说,热修复依然是一个既熟悉又陌生的词。仅仅知道热修复的作用,会使用框架,那样意义并不大。我们还要知道热修复的原理,这样不管框架如何变化,只要基本原理不变,我们都可以快速掌握它,或者自己动手写一个适合项目的热修复框架。热修复介绍1.开发流程当项目出现紧急bug时,传统的开发流程是发布新版本,引导...

weixin_39759881的博客 155
上一篇: Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)
下一篇: Android开发(12)--多线程处理机制之Handler的使用方法
liu_yaoyang
博客等级 码龄19年 5粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值