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接口. 写了一下.可是跳转直接崩溃.一直看错误之日找不到原因后来自习 ...
随机推荐
- java 中流的使用
Java中的流,可以从不同的角度进行分类. 一.按照数:输入流和输出流. 输出流: 输入流: 因此输入和输出都是从程序的角度来说的. 二.按照处理数据单位不同可以分为:字节流和字符流. 字节流和字符流 ...
- python 2017.1.9
python对缩进和空格要求非常严格,要求非常对齐 print时不同字符串之间会自动加上空格 while 和 if 等没有结束标记,全部通过对齐的方式表示的
- java环境下的数据库读写分离
方案很多:阿里的中间件cobar.aop注解方式.com.mysql.jdbc.ReplicationDriver读写分离驱动MySQL数据库的同步. MySQL是开源的关系型数据库系统.主从同步复制 ...
- 一个int类型究竟占多少个字节
一个int占多少个字节? 这个问题我们往往得到的答案是4. 可是int究竟占多少个字节,却跟你的机器环境有关. As you can see, the typical data type sizes ...
- TCP总结
TCP协议 <计算机网络>谢希仁 及笔记 TCP 的那些事儿(上):http://coolshell.cn/articles/11564.html TCP 的那些事儿(下):htt ...
- N皇后问题--递归回溯
著名的N皇后问题,就是先按照行一行一行的找,先找第一行,第一行找到一列能满足条件,继续找下一行,如果下一行也找到一列能满足条件,继续找下一行,一次类推,最终找到解, 但是,如果找不到的话, 就说明上一 ...
- C#判断网站运行状态是否正常
我使用的是控制台应用程序来监控网站的运行状态,通过判断网站请求头(HEAD)来判断是否运行正常 下面列出几种常见的网站状态码 StatusCode 数字表示 OK 200. OK 指示请求成功,且请求 ...
- 用户 'IIS APPPOOL\ExportExcel' 登录失败。
解决了前两个错误,在成功打开项目后,在访问数据库又越到如下错误 “/”应用程序中的服务器错误. 用户 'IIS APPPOOL\ExportExcel' 登录失败. 说明: 执行当前 Web 请求期间 ...
- c# 字符串编码问题
一. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...
- OD: Ring0 & Kernel
开发技术讲究封装与模块化,安全技术强调底层安全性.安全技术需要打开封装.追根溯源! <0day 安全:软件漏洞分析技术(第2版)> 第21章 探索 Ring0 笔记 Intel x86 系 ...