Activity的各种功能封装
Activity全屏、隐藏系统标题栏、设置屏幕方向、Activity跳转等功能
/**
* Copyright (C) 2012 TookitForAndroid Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package chen.android.toolkit.system; import java.util.Map; import org.apache.http.NameValuePair; import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast; /**
* </br><b>name : </b> ActivityUtil
* </br><b>description :</b>Activity特性辅助工具
* </br>@author : 桥下一粒砂
* </br><b>e-mail : </b> chenyoca@gmail.com
* </br><b>weibo : </b> @桥下一粒砂
* </br><b>date : </b> 2012-7-8
*
*/
public class ActivityUtil { /**
* </br><b>title : </b> 设置Activity全屏显示
* </br><b>description :</b>设置Activity全屏显示。
* @param activity Activity引用
* @param isFull true为全屏,false为非全屏
*/
public static void setFullScreen(Activity activity,boolean isFull){
Window window = activity.getWindow();
WindowManager.LayoutParams params = window.getAttributes();
if (isFull) {
params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
window.setAttributes(params);
window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
} else {
params.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.setAttributes(params);
window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
} /**
* </br><b>title : </b> 隐藏系统标题栏
* </br><b>description :</b>隐藏Activity的系统默认标题栏
* @param activity Activity对象
*/
public static void hideTitleBar(Activity activity){
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
} /**
* </br><b>title : </b> 设置Activity的显示方向为垂直方向
* </br><b>description :</b>强制设置Actiity的显示方向为垂直方向。
* @param activity Activity对象
*/
public static void setScreenVertical(Activity activity){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} /**
* </br><b>title : </b> 设置Activity的显示方向为横向
* </br><b>description :</b>强制设置Actiity的显示方向为横向。
* @param activity Activity对象
*/
public static void setScreenHorizontal(Activity activity){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} /**
* </br><b>title : </b> 隐藏软件输入法
* </br><b>description :</b>隐藏软件输入法
* </br><b>time :</b> 2012-7-12 下午7:20:00
* @param activity
*/
public static void hideSoftInput(Activity activity){
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
} /**
* </br><b>title : </b> 使UI适配输入法
* </br><b>description :</b>使UI适配输入法
* </br><b>time :</b> 2012-7-17 下午10:21:26
* @param activity
*/
public static void adjustSoftInput(Activity activity) {
activity.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
} /**
* </br><b>title : </b> 跳转到某个Activity。
* </br><b>description :</b>跳转到某个Activity
* </br><b>time :</b> 2012-7-8 下午3:20:00
* @param activity 本Activity
* @param targetActivity 目标Activity的Class
*/
public static void switchTo(Activity activity,Class<? extends Activity> targetActivity){
switchTo(activity, new Intent(activity,targetActivity));
} /**
* </br><b>title : </b> 根据给定的Intent进行Activity跳转
* </br><b>description :</b>根据给定的Intent进行Activity跳转
* </br><b>time :</b> 2012-7-8 下午3:22:23
* @param activity Activity对象
* @param intent 要传递的Intent对象
*/
public static void switchTo(Activity activity,Intent intent){
activity.startActivity(intent);
} /**
* </br><b>title : </b> 带参数进行Activity跳转
* </br><b>description :</b>带参数进行Activity跳转
* </br><b>time :</b> 2012-7-8 下午3:24:54
* @param activity Activity对象
* @param targetActivity 目标Activity的Class
* @param params 跳转所带的参数
*/
public static void switchTo(Activity activity,Class<? extends Activity> targetActivity,Map<String,Object> params){
if( null != params ){
Intent intent = new Intent(activity,targetActivity);
for(Map.Entry<String, Object> entry : params.entrySet()){
setValueToIntent(intent, entry.getKey(), entry.getValue());
}
switchTo(activity, intent);
}
} /**
* </br><b>title : </b> 带参数进行Activity跳转
* </br><b>description :</b>带参数进行Activity跳转
* </br><b>time :</b> 2012-7-17 下午10:22:58
* @param activity
* @param target
* @param params
*/
public static void switchTo(Activity activity,Class<? extends Activity> target,NameValuePair...params){
if( null != params ){
Intent intent = new Intent(activity,target);
for(NameValuePair param : params){
setValueToIntent(intent, param.getName(), param.getValue());
}
switchTo(activity, intent);
}
} /**
* </br><b>title : </b> 显示Toast消息。
* </br><b>description :</b>显示Toast消息,并保证运行在UI线程中
* </br><b>time :</b> 2012-7-10 下午08:36:02
* @param activity
* @param message
*/
public static void toastShow(final Activity activity,final String message){
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
}
});
} /**
* </br><b>title : </b> 将值设置到Intent里
* </br><b>description :</b>将值设置到Intent里
* </br><b>time :</b> 2012-7-8 下午3:31:17
* @param intent Inent对象
* @param key Key
* @param val Value
*/
public static void setValueToIntent(Intent intent, String key, Object val) {
if (val instanceof Boolean)
intent.putExtra(key, (Boolean) val);
else if (val instanceof Boolean[])
intent.putExtra(key, (Boolean[]) val);
else if (val instanceof String)
intent.putExtra(key, (String) val);
else if (val instanceof String[])
intent.putExtra(key, (String[]) val);
else if (val instanceof Integer)
intent.putExtra(key, (Integer) val);
else if (val instanceof Integer[])
intent.putExtra(key, (Integer[]) val);
else if (val instanceof Long)
intent.putExtra(key, (Long) val);
else if (val instanceof Long[])
intent.putExtra(key, (Long[]) val);
else if (val instanceof Double)
intent.putExtra(key, (Double) val);
else if (val instanceof Double[])
intent.putExtra(key, (Double[]) val);
else if (val instanceof Float)
intent.putExtra(key, (Float) val);
else if (val instanceof Float[])
intent.putExtra(key, (Float[]) val);
}
}
Activity的各种功能封装的更多相关文章
- js实现第一次打开网页弹出指定窗口(常用功能封装很好用)
js实现第一次打开网页弹出指定窗口(常用功能封装很好用) 一.总结 1.常用功能封装:之前封装的cookie的操作函数非常好用,我自己也可以这么搞 二.js实现第一次打开网页弹出指定窗口 练习1:第一 ...
- STM32嵌入式开发学习笔记(二):将功能封装为库文件
将所有的函数都堆在main.c文件里不是好的选择,庞大的代码文件会是你维护的障碍,明智的做法是,一种功能封装到一个库文件里. 库文件就是你代码开始部分写的#include<xxxx.h>里 ...
- JQuery实现列表中复选框全选反选功能封装
我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的 ...
- Android Toast的多功能封装——Android开发之路1
Android封装实现各种功能的Toast GitHub地址:https://github.com/SibreiaDante/ToastUtils 效果图: 方法封装如下: showSingleton ...
- 封装ShareSDK中的分享功能封以及对类似第三方功能封装的心得【原创】
本篇的主题有三个: 1.封装思想的介绍 2.我的封装代码 3.我在封装sharesdk(采用的是简洁版本)分享功能是碰到的问题,以及解决方法. PS:其实这个我之前封装过一次,不过最近在重构项目时发现 ...
- selenium主要功能封装
最近实习需要使用selenium这一自动化工具对公司的运维监控系统进行自动化爬取数据,编写代码过程中负责带我的杰哥让我参考借鉴他们公司外包的运维监控系统代码,在项目中我看到了对selenium主要各功 ...
- c++常用功能封装
C++文件读写的封装 在C++开发中,文件读写是很常用的功能,出于代码复用的考虑,将它们进行封装. 其中,默认读写的文件是文本文件,并且需要按行处理.调用者只需要关注读取出来的每一行的处理方式.写文件 ...
- 在对Activity基类的封装中,我做了什么
在开发实践中,不同Activity有很多代码是反复冗余的.因此非常有必要将这部分抽取出来.封装一个继承自Activity的类,命名为BaseActivity. 翻看之前写过的代码,起初,BaseAct ...
- Activity 之间 传递 List 封装的对象或者对象
项目中遇到 从也个页面向还有一个页面跳转传递一个List 封装的对象 .按网上查的资料 须要把 对象 实现 Serializable接口. 写了一下.可是跳转直接崩溃.一直看错误之日找不到原因后来自习 ...
随机推荐
- Linux与JVM的内存关系分析
引言 在一些物理内存为8g的server上,主要执行一个Java服务,系统内存分配例如以下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m. 从表面 ...
- Chrome调试大全--转载
作为一名前端开发者,打交道最多的可能是和浏览器.市面上各种浏览器多不胜数,主流的有Chrome,Firefox,Safari,IE,Opera,非主流的如360,遨游,QQ浏览器,搜狗浏览器,据说淘宝 ...
- [转] GMT、UTC与24时区 等时间概念
许多人都知道两地时间表简称为GMT或UTC,而世界时区表则通称为World Time,那么GMT与UTC的实质原意又是为何?世界时区又是怎么区分的?面盘上密密麻麻的英文单字代表着什么意义与作用呢?这些 ...
- Android 百度地图 SDK v3.0.0 (四) 引入离线地图功能
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直觉得地图应用支持离线地图很重要啊,我等移动2G屌丝,流量不易, ...
- RHEL7查看网卡配置命令ip addr show
Validating Network Address Configuration To verify the configuration of the network address, you nee ...
- VS2013配置文件常见问题解决方法
1.C++ VS2013出现LINK : fatal error LNK1104: 无法打开文件“kernel32.lib,”错误,什么原因啊?原因:项目->XX(项目名称)属性->链接器 ...
- IO-序列化 Serializable Parcelable Object
简介 1.什么是序列化和反序列化 对象的寿命通常随着生成该对象的程序的终止而终止,有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象的这种,能记录自己的状态以便将来再生的能力,叫作 ...
- 本机运行.net 2.0项目报错,解决方案
本机在iis上运行.net 2.0项目时,报以下错误“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”: 本机环境配置: 安装有以下几个.net 版本:v1.0.3705,v1.1.4322 ...
- jquery mini ui 学习
1.mini.parse(); 将html标签解析为miniui控件.解析后,才能使用mini.get获取到控件对象. 2.mini.get(id);根据id获取控件对象. 3.grid.load() ...
- 产品经理(PM)常用原型图设计工具
本文转贴自:http://www.zhangping.name/2010/08/28/pm-wireframes-design-tools/ ,尽管都是一些商业软件,但对设计的确非常有帮助. 天天和产 ...