活动被回收的处理、活动的启动模式、一键退出所有活动、UI控件、四种布局方式、自定义控件
2015-04-16 11:05
453 查看
Activity 主题:在清单文件AndroidManifest.xml中的<activity>标签有属性android:theme
例:<activity android:theme=”@android:style/Theme.Dialog”>(对话框式活动)
用。该方法携带一个Bundle类型的参数,可以用于保存数据。
例:
经由此,数据被保存下来。
2.数据被保存下来后,通过onCreate()方法获得经过onSaveInstanceState()方法保存的数据。
onCreate()方法同样携带了一个Bundle类型的参数。这个参数一般情况下都是null,但通过onSaveInstanceState()方法后,这个参数就带有保存的数据。
例:
这里的Bundle以及之前的Intent对于数据的保存与取出方式类似于Map
2.singleTop模式:如果在返回栈的栈顶有此Activity,则不会重新实例一个此Activity,而是
直接取得栈顶的Activity,若不在栈顶,则重新实例一个此Activity
3.singleTask模式:只要在返回栈中有过此Activity,无论是否在栈顶,都是直接取得返回栈 中的此Activity而不会重新实例一个Activity。但是在这个Activity上面的所有的所
有Activity统统出栈。
4.singleInstance模式:会启用一个新的返回栈来管理这个Activity。用处:与其他程序共享数据。
使用一个集合来管理所有你实例过的Activity
在Activity的onCreate()方法中调用addActivity()方法,在onDestroy()方法中调用removeActivity()方法。若要关闭全部,则直接调用removeAll()方法
PorgressDialog(对话框,带进度条)
修改对齐方式:
android:gravity=”[top|bottom|left|right|center]” (gravity:重力,bottom:底部)
修改颜色和大小:
android:textSize=””
android:textColor=””
控件提示性文字:
android:hint=”” (hint:提示)
限制行高:
android:maxLines=””
输入框类型
android:inputTupe=”textPassword” (密码输入框)
是否可见:
android:visibility=”[visible|invisible|gone]” (可见|不可见但占据位置|不可见且不占据位置)
代码:setVisibility([View.VISIBLE|View.INVISIBLE|View.GONE]);
界面弹出一个对话框:
android:orientation=”[vertical|horizontal]” (orientation:方向, vertical:垂直, horizontal:水平)
android:layout_gravity 指定控件在布局中的对齐方式
android:layout_weight 使用比例的形式来指定控件的大小(屏幕适配方面有重要作用)
RelativeLayout:相对布局
FrameLayout:帧布局
子控件对齐到左上角,控件会层叠,布局的大小由最大的子控件的最大尺寸决定。
TableLayout:表格布局
android:stretchColumns=”1” 表格行拉伸以自动适配屏幕。1带表拉伸第二列
android:shrinkColumns 与上相同,作用为收缩而不是拉伸
android:layout_span=”” 合并单元格
AbsoluteLayout:绝对布局(官方已经不推荐使用)
<include layout=”@layout/xxx” /> //实现布局配置文件的重用
例:<activity android:theme=”@android:style/Theme.Dialog”>(对话框式活动)
活动被回收
1.在Activity中重写onSaveInstanceState()方法,次方法保证在Activity被系统回收前被调用。该方法携带一个Bundle类型的参数,可以用于保存数据。
例:
@Override protected void onSaveInstanceState (Bundle outState){ super.onSaveInstanceState(outState); outState.putString(“key”, “value”); }
经由此,数据被保存下来。
2.数据被保存下来后,通过onCreate()方法获得经过onSaveInstanceState()方法保存的数据。
onCreate()方法同样携带了一个Bundle类型的参数。这个参数一般情况下都是null,但通过onSaveInstanceState()方法后,这个参数就带有保存的数据。
例:
@Override protected void onCreate (Bundle saveInstanceState){ super.onCreate(saveInstanceStage); setContentView(R.layout.xxx); if (saveInstanceState != null){ String value = saveInstanceState.getString(“key”); } }
这里的Bundle以及之前的Intent对于数据的保存与取出方式类似于Map
活动的启动模式
1.standard模式:无论返回栈中是否已经有此Activity,都会重新实例化一个此Activity2.singleTop模式:如果在返回栈的栈顶有此Activity,则不会重新实例一个此Activity,而是
直接取得栈顶的Activity,若不在栈顶,则重新实例一个此Activity
3.singleTask模式:只要在返回栈中有过此Activity,无论是否在栈顶,都是直接取得返回栈 中的此Activity而不会重新实例一个Activity。但是在这个Activity上面的所有的所
有Activity统统出栈。
4.singleInstance模式:会启用一个新的返回栈来管理这个Activity。用处:与其他程序共享数据。
一键退出所有活动
注意:是退出所有活动,即退出整个应用程序,而不是仅仅关闭程序界面,在后台挂起。使用一个集合来管理所有你实例过的Activity
public class ActivityCollector { public static List<Activity> activityList = new ArrayList<Activity>(); public static void addActivity (Activity activity){ activityList.add(activity); } pubic static void removeActivity (Activity activity){ activityList.remove(activity); } public static void removeAll (){ for (Activity activity: activityList){ if (!activity.isFinishing()){ activity.finish(); } } } }
在Activity的onCreate()方法中调用addActivity()方法,在onDestroy()方法中调用removeActivity()方法。若要关闭全部,则直接调用removeAll()方法
UI控件
TextView Button EditView ImageView ProgressBar(加载条) AlertDialog(对话框)PorgressDialog(对话框,带进度条)
修改对齐方式:
android:gravity=”[top|bottom|left|right|center]” (gravity:重力,bottom:底部)
修改颜色和大小:
android:textSize=””
android:textColor=””
控件提示性文字:
android:hint=”” (hint:提示)
限制行高:
android:maxLines=””
输入框类型
android:inputTupe=”textPassword” (密码输入框)
是否可见:
android:visibility=”[visible|invisible|gone]” (可见|不可见但占据位置|不可见且不占据位置)
代码:setVisibility([View.VISIBLE|View.INVISIBLE|View.GONE]);
界面弹出一个对话框:
AlertDialog.Builder dialog = new AlertDialog.Builder(XxxActivity.this); dialog.setTittle(“This is Dialog”); dialog.setMessage(“Something important”); dialog.setCancelble([true|false]); //可否取消 dialog.setPositiveButton(“OK”, new DialogInterface.OnClickListener (){ @Override public void onClick (DialogInterface dialog, int which){ //逻辑代码 } }); dialog.setNegativeButton(“Cancel”, new DialogInterface.OnclickListener (){ @Override public void onClick (DialogInterface dialog, int which){ //逻辑代码 } }); <span style="color:#ff0000;">dialog.show();</span>
四种布局方式
LinearLayout:线性布局。android:orientation=”[vertical|horizontal]” (orientation:方向, vertical:垂直, horizontal:水平)
android:layout_gravity 指定控件在布局中的对齐方式
android:layout_weight 使用比例的形式来指定控件的大小(屏幕适配方面有重要作用)
RelativeLayout:相对布局
FrameLayout:帧布局
子控件对齐到左上角,控件会层叠,布局的大小由最大的子控件的最大尺寸决定。
TableLayout:表格布局
android:stretchColumns=”1” 表格行拉伸以自动适配屏幕。1带表拉伸第二列
android:shrinkColumns 与上相同,作用为收缩而不是拉伸
android:layout_span=”” 合并单元格
AbsoluteLayout:绝对布局(官方已经不推荐使用)
自定义控件
1.引入布局<include layout=”@layout/xxx” /> //实现布局配置文件的重用
相关文章推荐
- Android 活动的四种启动模式
- 【安卓开发-3】Activity的四种启动模式、Intent的显式和隐式使用方式
- UI控件之监听器的四种实现方式
- 在MFC 子线程中使用UI(控件)退出时死锁或者超时处理参考
- 转载 android 所有布局属性和UI控件
- 活动管理器Activitycolletor(一键退出所有活动)
- 活动的四种启动模式
- activity活动的四种启动模式
- Activity四种启动模式及广播实现退出
- Android学习之路:活动的四种启动方式
- Android开发之基本控件和详解四种布局方式
- Android开发实现一键退出所有活动
- 活动的四种启动模式
- Android开发之基本控件和四种布局方式详解
- 活动的四种启动模式
- javafx之布局layout及UI控件事件处理canvas,效果,杂乱笔记
- 自定义控件(17)---布局方式组合系统控件,并封装自定义控件思想(自定义CheckBox)
- Android活动的四种启动方式(standard singleTop singleTask singleInstance)
- 关于Android活动的四种启动模式
- Android活动的四种启动模式