Android基础
来源:互联网 发布:淘宝粉丝红包 编辑:程序博客网 时间:2024/06/06 14:05
1.Intent
不仅可以指明想要执行的动作,还可以在不同组件之间进行数据传递,
可用于启动活动、启动服务、发送广播等
(1)显示Intent
startActivity(Intent)
(2)隐示Intent(可用于启动其它程序的活动,使功能共享成为可能)
①指定action和category
Intent intent = new Intent("action");
intent.addCategory("category");
②Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));//p47<data>标签
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));//指定了协议是tel
Intent.ACTION_VIEW是系统内置的动作,用于打开系统浏览器
Intent.ACTION_DIAL打开拨号界面
(3)向下一个活动传递数据
intent.putExtra("extra_data",data);//key-value
获取数据:
Intent intent = getIntent();
intent.getStringExtra("extra_data")
(4)返回数据给上一个活动
①活动启动方式 startActivityForResult(intent,1);
②步骤①中活动的销毁
Intent intent = new Intent();
intent.putExtra("data_return","hello");
setResult(RESULT_OK,intent);//第一个参数指定RESULT_OK或RESULT_CANCELED
finish();
③获取返回的数据
由于使用startActivityForResult来启动新的活动,所以活动销毁时会回调活动一 的onActivityResult方法
switch(requestCode){
case 1:
if(resultCode ==RESULT_OK){
String returnedData = data.getStringExtra("data_return");
}
break;
default:
break;
}
(5)点击硬件返回时,采用重写onBackPressed方法
同(4)②
2.活动
(1)活动的启动方式分为四种:standard(默认)、singleTop、singleTask、singInstance,通过android:launchMode进行指定
standard模式:无论返回栈中是否存在该活动,每次启动都会创建一个新的活动
singleTop模式:如果返回栈的栈顶已经是该活动,则不会创建新的活动
singleTask模式:保证整个应用程序的上下文只存在一个实例,返回栈中该活动以上的活动全部出栈
singInstance模式:启用一个新的返回栈来管理该活动,解决APP间共享活动实例的问题(getTaskId()取得返回栈id)
(2)启动活动的最佳写法
SecondActivity中添加启动方法
public static void actionStart(Context context, String param1, String param2){
Intent intent = new Intent(content, SecondActivity.class);
intent.putExtra("param1",param1);
intent.putExtra("param2",param2);
context.startActivity(intent);
}
FirstActivity启动活动
SecondActivity.actionStart(FirstActivity.this, "param1", "param2");
(3)活动回收,数据恢复
活动回收前,必定回调onSaveInstanceState()
private void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState();
String data = "Hello";
outState.putString("data_key",data);
}
数据恢复在活动的onCreate(Bundle savedInstanceState)方法
if(savedInstanceState != null){
String data = savedInstanceState.getString("data_key");
}
3.服务 继承service IntentService
(异步消息处理机制,继承AsyncTask)
4.广播接收器 (需要在xml文件中注册、注册权限)
全局广播和本地广播(本地广播无法通过静态注册的方式接收)
标准广播和有序广播(android:prioority优先级,截断abortBroadCast),可以跨进程通信(sendBroadCast和sendOrderedBroadCast)
动态注册(代码注册)、静态注册(xml注册)可实现自启动,要在onDestory()方法取消
继承BroadcastReceiver,并重写onReceive()方法
(1)监听网络变化
声明权限<uses-permissiom android:name="android.permission.ACCESS_NETWOK_STATE"/>
(2)广播的最佳实践-实现强制下线
5.内容提供器(跨程序共享数据的标准方式)需要xml注册
自定义内容提供器继承ContentProvider
6.文件存储
7.SharedPreferences存储
get、put+数据类型
8.SQLite数据库
数据表的创建工作放在SQLiteOpenHelper的继承类里,重写onCreate和OnUpgrade方法
使用SQL操作数据数 SQLiteDatabase db.execSQL db.rawQuery
integer 整型
real浮点型
text 文本类型
blob 二进制类型
最佳实践-添加事务-升级数据库的最佳写法(没有break)
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
switch(oldVersion){
case 1:
db.execSQL(CREATE_BOOK);
DEFAULT:
}
}
9.权限
10.UI
orientation:方向
gravity:文字的对齐方式
layout_gravity:控件的对齐方式
hint:提示
maxLine:输入内容的最大行
src:引入图片
LinearLayout(线性布局):
layout_weight(P109)允许使用比例
RelativeLayout(相对布局):
layout_alignParentLeft 左对齐 (相对于父布局定位)
以下属性行对于控件定位
android:layout_toLeftOf
android:layout_toRightOf
android:layout_above
android:layout_below
FrameLayout 无定位方式
TableLayout 表格布局
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="0">//将第0列进行拉伸,占据屏幕,0是列号
<TableRow>
<Button android:layout_span="2"/>//占据两列的空间
</TableRow>
</TableLayout>
Activity主题:
android:theme = "@android:style/Theme.Dialog"
11.控件
Button、TextView、EditText、ImageView、Progressbar(进度条)P100、
AlertDialog(对话框P101、P210)、ProgressBar(类似于AlertDialog,但可显示进度条)P103、
不仅可以指明想要执行的动作,还可以在不同组件之间进行数据传递,
可用于启动活动、启动服务、发送广播等
(1)显示Intent
startActivity(Intent)
(2)隐示Intent(可用于启动其它程序的活动,使功能共享成为可能)
①指定action和category
Intent intent = new Intent("action");
intent.addCategory("category");
②Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));//p47<data>标签
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));//指定了协议是tel
Intent.ACTION_VIEW是系统内置的动作,用于打开系统浏览器
Intent.ACTION_DIAL打开拨号界面
(3)向下一个活动传递数据
intent.putExtra("extra_data",data);//key-value
获取数据:
Intent intent = getIntent();
intent.getStringExtra("extra_data")
(4)返回数据给上一个活动
①活动启动方式 startActivityForResult(intent,1);
②步骤①中活动的销毁
Intent intent = new Intent();
intent.putExtra("data_return","hello");
setResult(RESULT_OK,intent);//第一个参数指定RESULT_OK或RESULT_CANCELED
finish();
③获取返回的数据
由于使用startActivityForResult来启动新的活动,所以活动销毁时会回调活动一 的onActivityResult方法
switch(requestCode){
case 1:
if(resultCode ==RESULT_OK){
String returnedData = data.getStringExtra("data_return");
}
break;
default:
break;
}
(5)点击硬件返回时,采用重写onBackPressed方法
同(4)②
2.活动
(1)活动的启动方式分为四种:standard(默认)、singleTop、singleTask、singInstance,通过android:launchMode进行指定
standard模式:无论返回栈中是否存在该活动,每次启动都会创建一个新的活动
singleTop模式:如果返回栈的栈顶已经是该活动,则不会创建新的活动
singleTask模式:保证整个应用程序的上下文只存在一个实例,返回栈中该活动以上的活动全部出栈
singInstance模式:启用一个新的返回栈来管理该活动,解决APP间共享活动实例的问题(getTaskId()取得返回栈id)
(2)启动活动的最佳写法
SecondActivity中添加启动方法
public static void actionStart(Context context, String param1, String param2){
Intent intent = new Intent(content, SecondActivity.class);
intent.putExtra("param1",param1);
intent.putExtra("param2",param2);
context.startActivity(intent);
}
FirstActivity启动活动
SecondActivity.actionStart(FirstActivity.this, "param1", "param2");
(3)活动回收,数据恢复
活动回收前,必定回调onSaveInstanceState()
private void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState();
String data = "Hello";
outState.putString("data_key",data);
}
数据恢复在活动的onCreate(Bundle savedInstanceState)方法
if(savedInstanceState != null){
String data = savedInstanceState.getString("data_key");
}
3.服务 继承service IntentService
(异步消息处理机制,继承AsyncTask)
4.广播接收器 (需要在xml文件中注册、注册权限)
全局广播和本地广播(本地广播无法通过静态注册的方式接收)
标准广播和有序广播(android:prioority优先级,截断abortBroadCast),可以跨进程通信(sendBroadCast和sendOrderedBroadCast)
动态注册(代码注册)、静态注册(xml注册)可实现自启动,要在onDestory()方法取消
继承BroadcastReceiver,并重写onReceive()方法
(1)监听网络变化
声明权限<uses-permissiom android:name="android.permission.ACCESS_NETWOK_STATE"/>
(2)广播的最佳实践-实现强制下线
5.内容提供器(跨程序共享数据的标准方式)需要xml注册
自定义内容提供器继承ContentProvider
6.文件存储
7.SharedPreferences存储
get、put+数据类型
8.SQLite数据库
数据表的创建工作放在SQLiteOpenHelper的继承类里,重写onCreate和OnUpgrade方法
使用SQL操作数据数 SQLiteDatabase db.execSQL db.rawQuery
integer 整型
real浮点型
text 文本类型
blob 二进制类型
最佳实践-添加事务-升级数据库的最佳写法(没有break)
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
switch(oldVersion){
case 1:
db.execSQL(CREATE_BOOK);
DEFAULT:
}
}
9.权限
10.UI
orientation:方向
gravity:文字的对齐方式
layout_gravity:控件的对齐方式
hint:提示
maxLine:输入内容的最大行
src:引入图片
LinearLayout(线性布局):
layout_weight(P109)允许使用比例
RelativeLayout(相对布局):
layout_alignParentLeft 左对齐 (相对于父布局定位)
以下属性行对于控件定位
android:layout_toLeftOf
android:layout_toRightOf
android:layout_above
android:layout_below
FrameLayout 无定位方式
TableLayout 表格布局
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="0">//将第0列进行拉伸,占据屏幕,0是列号
<TableRow>
<Button android:layout_span="2"/>//占据两列的空间
</TableRow>
</TableLayout>
Activity主题:
android:theme = "@android:style/Theme.Dialog"
11.控件
Button、TextView、EditText、ImageView、Progressbar(进度条)P100、
AlertDialog(对话框P101、P210)、ProgressBar(类似于AlertDialog,但可显示进度条)P103、
0 0
- android基础--activity基础
- 【Android基础】AsyncTask基础
- Android基础
- android基础
- Android基础
- Android基础
- android 基础
- android基础
- android基础
- android基础
- android基础
- android基础
- android基础
- android基础
- android基础
- android基础
- Android基础
- android 基础
- 获取当前操作系统的桌面路径(适用于Windows操作系统)
- file与管道符
- 【java】JDK 和Tomcat 环境变量的配置
- 数据分析实例--兰州二手房数据分析(一)
- 火爆朋友圈的柏拉图性格标签生成器源码下载
- Android基础
- Android UI设计(引导界面):ViewPager之三PagerTabStrip与PagerTitleStrip添加标题栏的区别
- mybatis笔记
- La3523 Knights of the round table
- Java内存回收
- MAC上安装使用KYLIN(OLAP工具)完整版
- 关于C++ 顶层const和底层const对拷贝操作的影响
- [Codeforces 697C] PLEASE (矩阵特征向量)
- 寻找【NOIP2016提高A组模拟7.17】