`
苹果超人
  • 浏览: 200226 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
  数据在android中是私有的,当然这而数据包括文件数据和数据库数据以及一些其他类型的数据。那么两个程序之间如何进行数据交换呢?解决这个问题主要靠ContentProvider。一个ContentProvider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。也就是说一个程序可以通过实现ContentProvider的抽象接口将自己的数据暴露出去。外界根本看不到,也就不用看到这个应用暴露的数据在应用当中如何存储的,或者是用数据库存储还是文件存储,还是网络存储。外界可以通过这套标准及统一的接口和程序中的数据打交道,可以操作程序中的数据 ...
  Notification状态栏图标与文字提醒,只要将Notification添加到NotificationManager,即可将信息显示到状态栏上。   获取NotificationManager对象: notiManager = (NotificationManager)getApplication().getSystemService(Service.NOTIFICATION_SERVICE);   当点击状态栏上的条目时,你需要进行页面的跳转等等,这里解释一下Notification的相关参数。   PendingIntent是一个悬挂起的Intent,也就是它先不执行,在它里面真正包 ...
  设置手机震动,首先要在配置文件中添加权限: <uses-permission android:name="android.permission.VIBRATE"/>   其次取得Vibrator对象。 vibrator = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);   代码很简单,相关讲解看代码 ...

SQLite

  Android系统中集成的是SQLite3版本,SQLite是一个开源的嵌入式数据库,他支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,不支持静态数据类型,而是使用列关系。   创建访问数据库,必须继承SQLiteOpenHelper类,且必须实现onCreate和onUpgrade两个方法,当创建数据库时,就会调用onCreate,所以可将要添加的table写在里面。当更新数据库时,则会调用onUpgrade,所以可将要更新的table的sql写在里面。前者用于初次使用软件时生成数据库,后者用于升级软件时更新数据库表结构。通过getWritableDatabase()和 ...

发邮件

  发送邮件使用android.content.Intent.ACTION_SEND,参数来实现通过手机发Email服务。收发Email的过程是通过android内置的Gmail程序,而非直接使用smtp的protocol,而模拟器上并未内置Gmail Client,因此该程序只能在真机上运行。   其实android中发送email有很多写法:   1. Uri uri = Uri.parse("mailto:****@gmail.com"); Intent emailIntent = new Intent(Intent.ACTION_SEND,uri); startA ...
  发短信的程序关键是通过SmsManager对象的sendTextMessage()方法来完成,其中sendTextMessage()方法要传入5个参数,依次是收件人地址(string),发送地址(string),正文(string),发送服务(pendingIntent)与送达服务(pendingIntent),其中收件人地址和正文不可以为空。   pendingIntent.getBroadcast()方法来定义一个PendingIntent并进行Broadcasting,而后使用SmsManager.getDefault(当处理SMS短信相关的活动,例如发送数据,文字与pdu SMS信息 ...
  拨打电话有两个关键的方面:   1. 在AndroidManifest.xml中添加uses-permission,<uses-permission android:name="android.permission.CALL_PHONE"/>   2. 通过自定义的Intent对象,带入"ACTION_CALL"这个ACTION,还要通过Uri.parse()的方法将用户输入的电话号码(Data)带入,最后调用startActivity方法。 package com.kevin.phone; import java.util.rege ...
  Linkify对象可以让系统动态获取,并迅速做出判断;也就是说,当你输入电话号码时,点击链接,就会立刻到拨打电话的程序里;输入Email的话,就会进入收发email界面;输入网址,点击链接就自动打开浏览器,功能跟android:autoLink属性一样,根据内容做实时的正则表达式判断。   eg. TextView tv = (TextView)findViewById(R.id.tv); Linkify.addLinks(tv,Linkify.WEB_URLS|Linkify.E-MAIL_ADDRESSES|Linkify.PHONE_NUMBERS); 很简单,不多作解释了。

AppWidget

  以前我们所见的Widget都是以Activity为主体的,但是在Android手机桌面(Home Screen AppWidgets)上的"小玩意"皆是属于桌面上的Android AppWidget。   类关系:   java.lang.Object    ↳ android.content.BroadcastReceiver      ↳ android.appwidget.AppWidgetProvider   AppWidget 框架类     1、AppWidgetProvider :继承自 BroadcastRecevier , 在AppWidget 应 ...
  SlidingDrawer(隐藏式抽屉),它配置上采用了水平展开和垂直展开两种(android:orientation)方式,在XML里必须指定其使用的android:handle和android:content,前者委托要展开的图片(点击的那个控件来打开抽屉),后者则是要展开的Layout Content(打开抽屉后的内容)。还是很简单的。 配置文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas. ...
  Android中提供了Bitmap和BitmapFactory对象,可以读取存储卡或者手机系统里的图片。BitmapFactory可以将图片文件转换成Bitmap对象。   1. decodeFile(String pathName)将手机文件系统中的图片转为Bitmap对象   2. decodeResource(Resources res, int id)将/res/drawable内图片文件转为Bitmap对象   3. decodeStream(InputStream is)将InputStream转为Bitmap对象 当然还有很多方法,这里不一一列举,大家可以查看一下API。   ...

ListView

  这里主要说一下,ListView支持OnItemClickListener事件,而Spinner不支持,Spinner中OnItemSelectedListener和ListView中OnItemSelectedListener的实现是不一样的,个人感觉Spinner中的OnItemSelectedListener跟ListView中的OnItemClickListener实现应该类似,但不知为何要用OnItemSelectedListener而不用OnItemClickListener这个名字,请知道的朋友指点一下。   另外,你可以在ListView下面配置一个TextView,设置它的 ...

GridView

  GridView是一个类似于"表格化"的二位排版配置View,当GridView里的元素多到画面放不下时,就会出现scrolling的效果,一般在GridView里面的元素称为Item,要将文字作为Item放入GridView,就要借助ArrayAdapter对象。   另外GridView的setSelection方法我还是不怎么明白,望了解的朋友告知,谢谢。 package com.kevin.gridview; import android.app.Activity; import android.os.Bundle; import android.vie ...
  还记得前面的ProgressDialog吗?在应用时,必须新建ProgressDialog对象,在运行时会弹出"对话框"作为提醒,此时应用程序的后台失去焦点,知道进程结束后,才能重新获取焦点,而在ProgressBar中,可以提示User后台程序正处于忙碌,也可以不让后台失去焦点。   另外,系统默认的ProgressBar是小圆圈,你可以自己设置ProgressBar。如果你想要一个水平的进度条,你可以用android自带的样式。如下: <ProgressBar android:id="@+id/progressBar1" ...
  难点没什么难点,主要注意一下,DatePicker的OnDateChangeListener是在它的init方法中注册的。而TimePicker的OnTimeChangeListener是用setOnTimeChangeListener方法注册的。另外,有兴趣可以尝试一下DatePickerDialog和TimePickerDialog,其实很简单,采用以上两个是以弹出Dialog的方式来显示,这里不多做解释。 package com.kevin.datetime; import java.util.Calendar; import android.app.Activity; ...
Global site tag (gtag.js) - Google Analytics