【安卓學習】1.活動-寫第一個安卓項目

2.1 活動是什麼?

        活動(Activity),包括用戶界面的組件,主要用於跟用戶交互。個人理解,就是展示給用戶看的東西。一個程序可以有零個或多個活動(正常展示給用戶的app至少有一個活動)。

2.2 Android Studio創建活動

        首先,我們打開Studio,選擇創建一個新的安卓項目
        然後給自己app起個名字(Application name),以及公司名(Company name),因爲我是個人開發者,所有就默認使用軟件自己生成的名。(因爲我之前已經創建了名爲Application01的項目,因此下面會報紅)。
         然後選擇項目最低兼容版本,因爲現在大家基本都是4.0以上了,因此選API 15。另外下面分別爲:Wear(穿戴設備),TV(電視),Android Auto(汽車程序)。暫時忽略吧。
        接下來可以選擇一個模板。第一次可以選擇一個Empty,空的。然後finish,就可以調試運行了。現在我們感受一下創建自己的活動,因此這裏選擇add no activity。然後finish。
        項目創建成功後,默認的是Android模式,按照書本的教學,切換到Project模式。
        接下來,創建我們自己的活動(activity)。總共四個步驟:1.創建活動,2.創建佈局,3.在活動中加載佈局,4.註冊活動。
  1. 創建活動
          在app/scr/main/java下面的包下,->New->Activity->Empty Activity,會彈出創建活動。我們命名爲FirstActivity,注意不要勾選Generate Layout File與Launcher Activity。rate...表示會自動給我們FirstActivity創建一個佈局文件,Launcher Activity會自動將當前活動(FirstActicity)設置爲主活動。因爲我們現在要體驗文件之間關係,因此這些自動創建的就不要勾選。然後點擊finish。
            這裏,需要知道的一點是:項目的任何活動都需要重寫OnCreate方法。Studio已經幫我們完成了:
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.first_layout);
        }
  2. 創建佈局

            在app/src/main/res目錄->New -> Directory,創建一個目錄,取名layout。然後對着layout ->Layout resource file,彈出對話框中,將佈局文件命名爲first_layout,根元素默認選擇LinearLayout,點擊OK。

            在佈局中添加一個Button:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <Button
            android:id="@+id/button_1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button_1"
            />
    
    </LinearLayout>


            其中,Button代表我們添加的是一個Button按鈕。android:id是給這個控件指定一個唯一的標識符,之後可以在代碼對這個元素進行操作。後面android:layout_width指定了button的寬度,match_parent說與父元素一樣寬,android:layout_height指定了button高度,wrap_content則代表剛好能展示裏面文字的高度。text則爲button按鈕顯示的文字。

  3. 活動中加載這個佈局

            接下來,需要在活動中(FirstActivity)加載這個佈局:

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.first_layout);
        }

             可見,只需要setContentView()方法,則可以完成。項目的任何資源文件都會在R文件中生成一個對應資源的id,因此只需要調用R.id.first_layout就可以得到佈局的id,然後傳入setContentView方法中。

  4. 在AndroidManifest中註冊

    fffffff

        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".FirstActivity"
                android:label="This is my first APP">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>

            其實,studio已經幫我們註冊過了,我在裏面又按照自己情況添加了一點代碼:

            首先,設爲主活動的代碼(即告訴軟件,啓動這個項目的時候,那個活動是第一個加載的活動),<intent-filter/>中的代碼完成這個功能。

            l另外,label的功能是,顯示這個頁面的時候,標題欄的內容,個人認爲類似與瀏覽器的標籤欄。

    至此,我們已經完成一個最簡單的安卓項目了,啓動運行看一下吧。

2.3 活動中使用Toast

        這個比較簡單,當然也比較實用。

        首先介紹一下Toast。這是安卓系統中比較好的一種提醒方式,在系統中,以短小的信息通知給用戶,而且過段時間就會消失,不佔用屏幕資源。個人感覺比較使用,比如我們可以借用這個來判斷點擊某個按鈕是否有效果,是否返回了資源等等。

用法也比較簡單,類似與java的System.out.println()一樣,我們在需要顯示的地方敲入代碼,例如:

     String resultData = data.getStringExtra("data");
     Toast.makeText(FirstActivity.this, resultData, Toast.LENGTH_SHORT).show();
主要是第二行,通過makeText靜態方法創建出一個Toast對象,然後調用show方法顯示出來就可以了。

makeText需要三個參數:第一個參數是Context,上下文,活動本身就是一個上下文,因此這裏我直接傳入FirstActivity.this。第二個參數是Toast要顯示的內容。第三個參數是顯示時長,有幾個內置常量可以選擇:Toast.LENGTH_SHORT和Toast.LENGTH_LONG。

運行結果就不粘了。

2.4 使用Menu菜單

安卓中,有一些菜單,就例如微信右上角點擊"+"號之後彈出菜單類似功能。安卓本身提供了類似的功能,因此實現比較簡單。
首先,我們在res目錄下創建一個menu文件夾,然後可以直接創建一個菜單文件 -> Menu resource file,名字我輸入main。
然後再main.xml中寫入如下代碼:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add_item"
        android:title="add"
        />
    <item
        android:id="@+id/remove_item"
        android:title="remove"
        />
</menu>
安卓中,菜單項可以用<item>標籤創建,然後id中指定一個id,通過text設置這個選項的內容。
接下來我們需要去activity中重寫一個方法onCreateOptionsMenu,目的是要菜單能夠顯示出來:
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
getMenuInflate方法可以得到MenuInfalte對象,然後調用inflate就可以創建菜單了。這裏需要傳入兩個參數:第一個參數是告訴系統,需要通過那個資源文件夾來創建菜單;第二個參數是指定我們的菜單項添加到哪一個Menu對象當中,這裏我們使用方法中傳入的參數menu。然後讓方法返回true,表示創建的菜單顯示出來,如果返回false則不會顯示出來了。
當然,菜單隻顯示出來還是不夠的,還需要能點擊,然後有對應的活動。這時需要我們重寫onOptionsItemSelected()方法。
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.add_item:
                Toast.makeText(this, "Add", Toast.LENGTH_SHORT).show();
                break;
            case R.id.remove_item:
                Toast.makeText(FirstActivity.this, "Remove", Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        return true;
    }
代碼比較簡單,通過抵用item.getItemId()方法判斷我們點擊的是哪個菜單,然後做出相應的動作。這裏我用了之前的Toast。

2.5銷燬一個活動

其實就是我們使用一般安卓應用時,點擊Back鍵功能。如果想自己實現,則可以添加一個Button,然後添加監聽事件,在點擊按鈕之後,執行一個方法finish(),就可以銷燬當前活動了。比較簡單,不貼代碼了。




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