Android記錄一些基礎性的東西

一、 Android開發——如何完全退出Activity
      在網上看了好多大牛關於完全退出Android應用程序Activity的處理方式,我總結出一下幾個方法:
     1、創建一個Activity的基類,重寫startActivity()方法,在裏面添加一句finish()。其他的Activity繼承這個基類,這樣在啓動一個新的Acitivty之前就可以退出前一個Acitivity。當然這樣有一個壞處是當返回時不能返回到前一個Activity,所以我們需要對finish()的Activity進行管理,不需要返回用到的就finnish(),需要的就不finish()。
      2、創建一個Activity的基類,其他的Acticity都繼承這個基類。退出使用廣播,在需要退出的地方發送一個廣播。在基類中接收這個廣播。然後finish(),這樣就可以了。不用每個Activity都去寫代碼。這樣做有好多好處,基類+廣播可以做其他很多事情。
      3、在要退出的Activity上點擊“退出菜單”時,從當前Activity跳轉到主Activity(我們打開程序最新啓動的Activity),通過Intent告知主Activity我要退出程序,主Activity再調用finish()方法即可。這一過程會很短暫,以致於我們沒觀察到Activity有任何切換就退出程序了!  
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

自己管理: 將Activity放入集合進行管理

import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;

import java.util.Stack;

/**
 * Activity管理類
 */
public class AppManager {

    private static Stack activityStack;

    private static AppManager instance;

    private AppManager() {
    }

    /**
     * 單一實例
     */
    public static AppManager getAppManager() {
        if (instance == null) {
            instance = new AppManager();
        }
        return instance;
    }

    /**
     * 添加Activity到堆棧
     */
    public void addActivity(Activity activity) {
        if (activityStack == null) {
            activityStack = new Stack();
        }
        activityStack.add(activity);
    }

    /**
     * 獲取當前Activity(堆棧中最後一個壓入的)
     */
    public Activity currentActivity() {
        Activity activity = activityStack.lastElement();
        return activity;
    }

    /**
     * 結束當前Activity(堆棧中最後一個壓入的)
     */
    public void finishActivity() {
        Activity activity = activityStack.lastElement();
        finishActivity(activity);
    }

    /**
     * 結束指定的Activity
     */
    public void finishActivity(Activity activity) {
        if (activity != null) {
            activityStack.remove(activity);
            activity.finish();
            activity = null;
        }
    }

    /**
     * 結束指定類名的Activity
     */
    public void finishActivity(Class<!--?-->cls) {
        for (Activity activity : activityStack) {
            if (activity.getClass().equals(cls)) {
                finishActivity(activity);
            }
        }
    }

    /**
     * 結束所有Activity
     */
    public void finishAllActivity() {
        for (int i = 0, size = activityStack.size(); i < size; i++) {
            if (null != activityStack.get(i)) {
                activityStack.get(i).finish();
            }
        }
        activityStack.clear();
    }

    /**
     * 退出應用程序
     */
    @SuppressWarnings("deprecation")
    public void AppExit(Context context) {
        try {
            finishAllActivity();
            ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            activityManager.restartPackage(context.getPackageName());
            System.exit(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

二、 Android開發——android實現複雜table表格合併單元格

可以通過Tablelayout佈局的layout_span屬性實現,layout_span指定該單元格佔據的列數

1、Tablelayout簡介

       Tablelayout類以行和列的形式對控件進行管理,每一行爲一個TableRow對象,或一個View控件。當爲TableRow對象時,可在TableRow下添加子控件,默認情況下,每個子控件佔據一列。 當爲View時,該View將獨佔一行。

2、TableLayout行列數的確定

           TableLayout的行數由開發人員直接指定,即有多少個TableRow對象(或View控件),就有多少行。

        TableLayout的列數等於含有最多子控件的TableRow的列數。如第一TableRow含2個子控件,第二個TableRow含3個,第三個TableRow含4個,那麼該TableLayout的列數爲4.

3、TableLayout可設置的屬性詳解

TableLayout可設置的屬性包括全局屬性及單元格屬性。

單元格屬性,有以下2個參數:

android:layout_column    指定該單元格在第幾列顯e799bee5baa6e997aee7ad94e59b9ee7ad9431333337613764示

android:layout_span        指定該單元格佔據的列數(未指定時,爲1)

示例:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:padding="3dip"  
    >  
    <!-- 1個TableLayout,用於描述表中單元格的屬性,包括:android:layout_column 及android:layout_span-->  
    <TextView   
        android:text="表:單元格設置:指定單元格屬性設置"  
        android:layout_height="wrap_content"   
        android:layout_width="wrap_content"  
        android:textSize="15sp"  
        android:background="#7f00ffff"/>   
    <TableLayout  
        android:id="@+id/table2"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:padding="3dip">  
        <TableRow>  
            <Button android:text="第0列"/>  
            <Button android:text="第1列"/>  
            <Button android:text="第2列"/>  
        </TableRow>  
           
        <TableRow>  
            <TextView android:text="我被指定在第1列" android:layout_column="1"/>  
        </TableRow>  
               
        <TableRow>  
            <TextView  
                android:text="我跨1到2列,不信你看!"  
                android:layout_column="1"  
                android:layout_span="2"  
                />  
        </TableRow>  
           
    </TableLayout>
 <TableRow>
                                        <TextView
                                            style="@style/peibitongzhidanDetail"
                                            android:layout_weight="0.2"
                                            android:layout_height="90dp"
                                            android:gravity="left|center_vertical"
                                            android:text="5" />
                                        <TextView
                                            style="@style/peibitongzhidanDetail"
                                            android:layout_weight="1"
                                            android:layout_height="90dp"
                                            android:gravity="left|center_vertical"
                                            android:text="受力鋼筋" />
                                        <TableLayout
                                            android:layout_width="0dp"
                                            android:layout_height="90dp"
                                            android:layout_weight="2"
                                            >
                                            <TableRow>
                                         <TextView
                                             style="@style/peibitongzhidanDetail"
                                                    android:layout_weight="1"
                                                    android:text="間距"
                                             android:gravity="left|center_vertical"
                                                    android:paddingLeft="5dp" />
                                                <TextView
                                                android:id="@+id/tv9_"
                                              style="@style/peibitongzhidanDetail"
                                                android:layout_weight="1"
                                                android:text="±10"
                                             android:gravity="left|center_vertical"
                                                android:paddingLeft="5dp" />
                                                <TextView
                                                android:id="@+id/tddffv1_ees"
                                              style="@style/peibitongzhidanDetail"
                                                android:layout_weight="1"
                                                android:gravity="center"
                                                android:text="實際偏差"
                                                android:paddingLeft="5dp" />
                                            </TableRow>
                                            <TableRow>
                                                <TextView
                                              style="@style/peibitongzhidanDetail"
                                                android:layout_weight="1"
                                                android:text="排距"
                                             android:gravity="left|center_vertical"
                                                android:paddingLeft="5dp" />
                                                <TextView
                                              style="@style/peibitongzhidanDetail"
                                                android:layout_weight="1"
                                                android:text="±5"
                                             android:gravity="left|center_vertical"
                                                android:paddingLeft="5dp" />
                                                <TextView
                                             style="@style/peibitongzhidanDetail"
                                                android:layout_weight="1"
                                                android:gravity="center"
                                                android:text="實際偏差"
                                                android:paddingLeft="5dp" />
                                            </TableRow>
                                        </TableLayout>
                                    </TableRow>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章