今天想在TimerTask的run函数中调用Toast显示一下提示信息,却总是导致程序崩溃.可是try语句块却又无法捕获到异常,代码如下: ...... Timer timer = new Timer(); TimerTask sampleTask = null; ...... if (sampleTask==null){ sampleTask = new TimerTask() { @Override public void run() { Toast.makeText(getApplicat…
1. 表象     Service中可以正常显示Toast,IntentService中不能正常显示Toast,在2.3系统上,不显示toast,在4.3系统上,toast显示,但是不会消失. 2. 原因     Toast要求运行在UI主线程中.     Service运行在主线程中,因此Toast是正常的.     IntentService运行在独立的线程中,因此Toast不正常. 3. 在IntentService中显示Toast     利用Handler,将显示Toast的工作,放在…
在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而使用一个新类Label取代.可想而知,Label实际上就是对之前3个类进行重新封装并统一渲染. 提示:实际上老版本的内容在3.x版本中依然是可以使用的. 下面是在Cocos2d-x中显示文字的一个例子,具体完整项目可在源文件本章目录下找到项目ChapterThree01查看. [范例3-1 在Coc…
消息提示可细分为两种:大量消息提示——当程序有大量图片.信息需要展示时,采用对话框消息提示: 小量消息提示——当程序只有少量信息需要呈现给用户时,采用轻量级的对话框——Toast; Toast ==> Toast是一种非常方便的消息提示方式,其会在程序中呈现一个简单的提示信息,类似Winform中的MessageBox. Toast提示方式的特点: 1.Toast提示信息不会获取焦点 2.Toast提示信息过一段时间会自动消失 Toast使用操作步骤: 1.调用Toast的构造器或makeTex…
面向对象的底层实现 java作为面向对象高级语言,可对现实世界进行建模.和面向过程不同的是面向对象软件的编写不是流程的堆积,而是对业务逻辑的多视角分解和分类.其过程大致为:      1).将知识分解成不同粒度的小概念.      2).对概念进行分类,形成类.模块.系统      3).用计算机语言将其实现为对象(包含操作和数据) 然而,大多程序员编写代码时很少思考面向对象的体系是如何实现的.因为它属于底层,并不必要.但是,学习过Java反射技术并有所思考的人会意识到,面向对象的种种语法本身也…
1.Toast控件: 通过查看源代码,发现Toast里面实现的原理是通过服务Context.LAYOUT_INFLATER_SERVICE获取一个LayoutInflater布局管理器,从而获取一个View对象(TextView),设置内容将其显示. public static Toast makeText(Context context, CharSequence text, int duration) { Toast result = new Toast(context); LayoutIn…
转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类控件时(比如TextView),注册ListView的监听setOnItemClickListener之后,当点击Item时候会触发onItemClick回调. 但是,当Item中存在Button(继承于Button)的控件时,onItemClick回调不会被触发. 解决方案: 在Item的布局文件…
做Android布局是件很享受的事,这得益于他良好的xml方式.使用xml可以快速有效的为软件定义界面.可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了.那么如何才能做到像官方提供的那些组件一样用xml来定义他的属性呢?现在我们就来讨论一下他的用法. 1.添加文件attrs.xml,位于res\values目录下: <?xml version="1.0" encoding="utf-8"?> <resources> &…
实现步骤 代码实现 创建MainActivity和DetailActivity(点击通知后要跳转的Activity),两个Activity的布局文件就是添加一张全屏的背景图,老规矩,不粘贴. MainActivity的代码: import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import android.app.Notification; import android.…
用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: string str1 = "abcd", str2 = "abcd"; if(str1==str2) { return true; } else { return false; } 殊不知在Java中,两个String类型的变量,尽管字符相同,使用”==“进行比较,也会返回false. Java中进行字符串比较需采用String类型的equals方法: String str1 = "abcd&…
目录(?)[-] UI开发 方式一通过XML文件 方式二通过代码 方式三XML代码 UI开发 先理清一些UI概念: view.widget.control:这三个名词其实没有什么区别,都是一个UI元素,例如一个button.Container(容器):包含其他view,例如grid可以认为是容器,它有cell,每个cell可以是一个view.Layout: 对容器们和view们的排版,可以包含其他layout. Android提供常用的UI(例如文字框)以及适合移动设备的控制,基础类为andro…
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内容主要都是介绍如何在屏幕上显示图像,事实上除了图像之外,音乐的播放也可以被理解为一种显示的方式,本节将学习在Cocos2d-x中播放声音的方法. (1)在HelloWorld.h中对HelloWorld类进行如下定义: class HelloWorld : public Cocos2d::Layer { pu…
1. 子线程的Toast怎么显示不出来? 因为Toast在创建的时候会依赖于一个Handler,并且一个Handler是需要有一个Looper才能够创建,而普通的线程是不会自动去创建一个Looper对象,比如说在某个Activity中能new一个Handler是因为Android系统在启动一个Activity的时候会默认的创建一个Looper对象. 因此为了能够在子线程中显示Toast,你可以在开启的子线程中执行Looper.prepare()来构建一个Looper,然后在显示Toast,但是不…
文章转载仅仅能用于非商业性质,且不能带有虚拟货币.积分.注冊等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 通过widget定义.我们在widget列表中看到了我们的TestWidget.当我们拖拽widget到主页时.假设在appwidet-provider中定义了android:configure的java类,在widget实例创建后会立即唤起配置activity.这个activity主要完毕两个任务:1.配置初始化数据…
通过widget定义,我们在widget列表中看到了我们的TestWidget.当我们拖拽widget到主页时,假设在appwidet-provider中定义了android:configure的java类,在widget实例创建后会立即唤起配置activity. 这个activity主要完毕两个任务:1.配置初始化数据:2.将配置数据适配到widget实例中. 利用preference中存贮配置数据 widget数据能够保持在文件.Share preference,或者SQLite3中.wid…
目录 Android学习笔记(一) 一.JDK.Android SDK 二.部分项目结构 三.字符串引用 四.外层build.gradle详解 五.app->build.gradle详解 六.日志工具Log 七.AndroidManifest.xml 八.Toast 九.在活动中使用menu Android学习笔记(一) --lgr-- Completed on 27/02/2020 一.JDK.Android SDK JDK是Java语言的软件开发工具包,包含了Java的运行环境.工具集合.基…
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android开发中,如何在服务器端创建JSON数据,以及如何在Android客户端对JSON数据进行解析. 1.JSON数据结构 在JSON中有两种数据结构:对象和数组. 1.1对象 在JSON中,一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名…
1.学习<第一行代码> 第一个android项目: 项目的注意点,如创建项目时包名具有唯一性,在做项目的时候要手动改成Project模式.还知道了引用字符串的两种方式. AS项目的三种依赖方式:本地依赖.库依赖.远程依赖. 在AS中不使用System.out,使用Log.学习了日志工具类Log中五个方法Log.v().Log.d().Log.i().Log.w().Log.e()的使用,通过这五个方法来打印日志文件. logcat 中的过滤器:利用过滤器可以只显示你想要的那个日志. logca…
1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那一刻起一直到最后隐藏所经历的若干阶段,理解其生命周期对确保应用程序正确的工作是极其关键的. a.Activity的生命周期 Activity的生命周期中包含三种状态:Resumed状态.Paused状态.Stopped状态,每一个Activity都处于某一个状态. Resumed状态,当Activi…
 Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在Android 3.0 SDK中为平板引入,在4.0中也可以在phone中使用.在title中提供类似tab和菜单的效果,有三种形式:Tabbed action bar,list action bar和standard action bar,我们将在小例子中进行示范. Home Icon 在Actio…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接受可用于本地,也可以用于不同的进程(应用)间.广播还常用于后台服务,当接收器收到某个广播消息时,通常会在通知栏中提示用户,用户点击通知,可以进入某个Activity中进行处理. 小例子 接收器应用为本小例子,发送广播应用利用上一学习的小例子. 代码 关于通知,可以参考Android学习笔记(五五):…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见Pro Android学习笔记(六四):安全和权限(1):签发apk,我们将对package做进一步了解. 每个apk都有一个唯一的根包名,在AndroidManifest.xml中定义,如下.开发者为包进行签发,前面和包名绑定,其他开发者不能对这个包进行更新. <?xml version="1…
目录(?)[-] Local service代码 调用Local ServiceLocal Service client代码 AndroidManifestxml定义Serviceacitivty的launchMode 一些思考 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Local Service的目的是更容易实现后台任务.下面是一个简单的小例子,通过一个activity请求服务和…
目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 之前,我们直接在activity中执行http通信,在通信过程中可能会出现连接超时.socket超时等情况,超时阈值一般是秒级,例如AndroidHttpClient中设置的20秒,如果出现超时,就…
目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 应用有时需要从web中下载一个大文件,并保存在本地,这个操作过程是标准的,因此在Android2.3引入了DownloadManager类.相关的学习也可以参考Android学习笔记(四六):互联网通信-文件下载. 小例子 先看一个小例子,如下图所示.lay…
目录(?)[-] 例子1ListPreference小例子 定义一个preferences XML文件 继承PreferenceActivity 用户定制偏好的读取 第一次运行时设置缺省值 设置Category Adnroid提供Preferences framework,用户可定制化应用,可用来保存信息和状态.在Android学习笔记(四十):Preference的使用中我已经对preferences有所了解.在Android 3.0,随着对平板的支出,preferences有不少的变化. 例…
目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Content Provider(上) . abd –e shell -e是表面连接模拟器emulator,-d则是连接设备.在模拟器中,我们有一个提升的Linux权限,而在真实设备是没有的,我们可以在模拟器中处理SQLite数据,但是不能在真实设备这样做,即便是我们自己部署的应用. 模拟器Console 我们…
之前,我们学习的Action Bar是标准模式,Tab模式的如下图所示. 对于Tab,我们在Android学习笔记(二二): 多页显示-Tag的使用中学习过,但Action Bar的tab更适合fragment的使用.我们在之前实现的标准Action Bar的基础上添加导航用的tab,代码如下: public class TabbedActionBarDemo extends SearchTestCase3 implements ActionBar.TabListener{    @Overri…
目录(?)[-] 设置横排和竖排的不同排版风格 改写代码 对于fragment,经常涉及不同屏幕尺寸和不同的排版风格.我们在基础小例子上做一下改动,在横排的时候,仍是现实左右两个fragment,在竖排时,如下图显示: 屏幕上只显示一个fragment,点击列表上的数目,进入到简介的activity.下面介绍实现的方式. 设置横排和竖排的不同排版风格 在 Pro Android学习笔记(四):了解Android资源(下)的“资源和配置的变更”中,我们介绍了如何同资源文件夹名设置不同资源.缺省的l…
目录(?)[-] 利用XML创建菜单 XML的有关属性 onClick事件 Pop-up菜单 利用XML创建菜单 在代码中对每个菜单项进行设置,繁琐且修改不灵活,不能适配多国语言的要求,可以利用资源进行设置.在之前的Pro Android学习笔记(十):了解Intent(上)#系统的Intent中我们已经给了一个如何利用XML进行菜单项设计的详细小例子,这里就不在重复.这里仅补充一下说明. XML的有关属性 <menu xmlns:android="http://schemas.andro…