创建一个ContentProvider ContentProvider是一个统一发布数据的接口,所有程序可以使用ContentResolver来接收数据1.创建一个ContentProvider需要扩展自抽象类public class MyContentProvider extends ContentProvider
2.在Mainifest文件中注册,并设定一个 android:authorities="包名地址";3.发布ContentProvider的URI地址publicstaticfinal Uri CONTENT_URI = Uri.parse("content://com.rain.bus/MycontentProvider");一个Conten...
可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner。 list的样式和theme有关,如果theme设置不正确,还可能会出现异常。相关的代码如下:public class ListActionBarDemo extends SearchTestCase3 implements OnNavigationListener{ //List触发的回调函数接口 @Override protected void onCreate(Bundle savedInstanceState) { ...
Android学习笔记二十五之ListView多布局实现 这一节是介绍ListView这个控件的最后一节,实现一个Item的多布局。像我们经常在用的各种即时通讯工具,QQ、微信等,假设他们的会话界面是ListView实现的,那么ListView就有多种Item布局,这一节,我们就来实现一个ListView的多种Item。 要实现ListView里面有多种Item,就要重写适配器的两个方法getViewTypeCount()和getItemViewType(int position),第一个方法是返回Item的种类数...
动画分为逐帧动画(Frame)、补间动画(Tween) 和属性动画。1、逐帧动画通常采用XML资源文件进行定义,如下:android:oneshot 设置是否循环播放动画,false为循环播放为默认的设置,xml文件定义帧动画资源,在程序中用一个ImageView就可以显示该动画了。需要指出的是AnimationDrawable代表的动画默认是不播放的,需要在程序中启动,调用start() 和 stop() .<?xml version="1.0" encoding="utf-8"?>
<!-- 指定动画循环播放 -->
<animat...
命名空间:android.widget.TabHost初始化函数(必须在addTab之前调用):setup(); 包含两个子元素:1.Tab标签容器TabWidget(@android:id/tabs)2.Tab内容容器FrameLayout(@android:id/tabcontent)FragmentTabHost命名空间:android.support.v4.app.FragmentTabHostandroid.support.v13.app.FragmentTabHost初始化函数(必须在addTab之前调用):setup(this, getSupportFragmentManager(), R.id.realtabcontent);包含三个子元素:...
一、MediaProvider数据库介绍 1. 关系型数据库 关系模型的物理表示是一个二维表格,由行和列组成。 2. MediaProvider数据库存储位置 /data/data/com.android.providers.media/databases 内置存储:internal.db 外置存储:external-ffffffff.db 3. MediaProvider扫描更新数据库 app层:MediaScannerReceiver、MediaScannerService Framework层:MidiaScanner Native层:St...
这篇文章是android开发人员的必备知识。1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务。 其中需要注意轮询的频率设置,要在需求和性能中平衡。2.独立进程 无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。 我们需要一个独立进程的后台服务。 在AndroidManifest.xml中注册Service时,有一个android:process...
前言在决定用这个标题之前甚是忐忑,主要是担心自己对AIDL的理解不够深入,到时候大家看了之后说——你这是什么玩意儿,就这么点东西就敢说够了?简直是坐井观天不知所谓——那样就很尴尬了。不过又转念一想,我辈年轻人自当有一种一往无前的锐气,标题大气一点岂不更好?并且大家都是文明人,总归更多的是理解与补充而不是侮辱与谩骂?所以最终还是厚颜用了这么一个不怎么有耻的标题。好了,接下来进入正题,谈谈我对AIDL的理解和...
今天使用Cursor c = db.rawQuery("select * from bus_line where ? like ‘%%‘;", new String [] {"linename"});查询数据库,想当然的以为from后面的表名也是可以用占位符替代的,于是Cursor c = db.rawQuery("select * from ? where ? like ‘%%‘;",new String [] {”bus_line“,"linename"});这句话一直报错:near ? ,a sytax error,最后搞了一下午弄清了数组能代替SQL语句的?占位符只对查询参数适用。原文:http://www.cn...
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图:当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以看见他们的界面的。但是当我们的页面处在1的时候,页面3实际上就已经销毁了。直到跳转到页面2的时候,页面3才会创建View。 这时,如果页面3中有需要耗时的事件,比如网络访问。那么,在我们进行 1-->2 的操作的时候,就会不断的出现页面3加载的对话框(如...
这一节介绍使用FragmentPagerAdapter适配器,来加载Fragment对象。 数据源加载Fragment对象时,数据源自然来自Fragment,与View类似,依旧使用List来存放数据源fragmentList=new ArrayList<>();fragmentList.add(new Fragment1());fragmentList.add(new Fragment2());fragmentList.add(new Fragment3());fragmentList.add(new Fragment4()); 适配器与PagerAdapter类似,FragmentPagerAdapter也可以通过新建子类的形式,重写方法,来...
---恢复内容开始---过了一个没有假期的10.1,今天来把之前学的东西复习一下,BroadcastReceiver,Android四大组件之一,为什么这么说,百度一下,你就知道,BroadcastReceiver分为两种广播,一种是常驻型,一种是非常驻型,常驻型是在XML中国注册的被称为常驻型,在代码中注册的被称作为非常驻型,第一步,先建立一个JAVA文件,继承与BroadcastReceiver类,MyBind.java 1package com.wuxianedu.guangbo;2 3import android.content....
基于数组的ListViewlistview1.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"> <ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:divider="#f00"
and...
基础工具部分: 中文手册,我猜测是Maven中文手册,可是我并没有找到这样的资源,欢迎知道的朋友告诉我;Android部分有 『第三方库集合』,我没能找到资源地址;书籍我大多是给的豆瓣链接,如果觉得不合适可以替换一下;程序设计一、java(a)基本语法(如继承、异常、引用、泛型等)Java核心技术 卷I(适合入门)进阶
Effective Java中文版(如何写好的Java代码)Java解惑 (介绍烂Java代码是什么样的)(b)多线程、并发Java并发编...
显示对话框窗口1、创建Dialog1项目,在activity_main.xml文件中添加一个Button:<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@d...