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);
    }
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM