1.第一行代碼Android 第2版 郭霖 著
探究活動①
活動的基本用法
活動是最容易吸引用戶的地方,它是一種可以包含用戶界面的組件,主要用於和用戶交互。
我的理解:活動就像是一個個應用當中不同的界面,每個活動都有自己的佈局和方法,爲用戶提供不同的體驗,通過不同活動的跳轉,最終匯聚成一個完整的APP。
它的基本用法包括:啓動活動、傳遞數據、活動的生命週期、啓動模式等等,可以說,活動爲APP提供了一個整體的框架,讓其他系統組件可以在裏面進行不同的工作。
創建和加載佈局
之前也提及:在Android程序的設計中,我們講究邏輯和視圖分離,最好每一個活動都能對應一個佈局。這樣佈局就用來顯示界面,而活動則實現具體的邏輯。
在XML中,引用資源語法如下:
引用id:@id/id_name
添加id:@+id/id_name
這裏的id可以替換成各種你需要的資源,例如:如果是字符串可以換成string,如果是圖片可以換成drawable,如果是應用圖標可以替換成mipmap,如果是佈局文件可以替換成layout等等。
而如果需要在代碼中應用則可以用R.需要的資源.app_name表示。
在AndroidMainifest文件中註冊
我們知道,所有活動都需要在AndroidMainifest.xml中進行註冊才能生效,而標籤就是用來對活動進行註冊的,在標籤中使用android.name就可以具體註冊哪一活動了。
如果需要將活動設置爲程序的主活動,則需要在標籤的內部加入標籤。例如:
<activity android:name = ".FirstActivity"
<android:label = "This is FirstActivity">
<inter-filter>
<action android:name = "android.intent.action.MAIN" />
<categorey android:name = "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這樣就表示FirstActivity成爲了程序的主活動了,當我們點擊APP時,首先打開的就是這個活動了。
在活動中使用Toast
Toast相當於一種提示信息,在程序中可以使用它將一些短小的信息通知給用戶,這些信息會在一段時間後自動消失,並且不會佔用任何屏幕空間。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
//獲取佈局中定義的元素
Button btn = (Button)findViewById(R.id.button_1);
btn.setOnClickListener(new View.OnClickListener()){
@Override
public void onClick(View v){
/*
matkeText()方法創建一個Toast對象,再調用show()就可以將其提示信息顯示出來了。
該方法需要3個參數,一個參數是上下文對象Contest,第二個參數需要顯示的內容,
第三個參數是顯示的時長。
*/
Toast.makeText(FirstActivity.this,"You clicked Button1",Toast.LENGTH_SHORT).show();
}
}
}
在活動中使用Menu
在res目錄下的menu文件夾下創建一個main.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<iten
android:id = "@+id/add_item"
android:title = "Add" />
<iten
android:id = "@+id/remove_item"
android:title = "Remove" />
</menu>
這樣我們就創建了兩個菜單項Add和Remove,而id則是這個菜單項指定的一個唯一標識符。
接着重寫onCreateOptionsMenu()方法
public boolean onCreateOptionsMenu(Menu menu){
//通過getMenuInflater方法得到MenuInflater對象,再調用inflate()方法創建菜單
getMenuInflater().inflate(R.menu.main,menu);
//若返回false,菜單則無法顯示。
return true;
}
最後,我們再定義菜單響應事件就可以簡單運用菜單了。
public boolean onOptionsItemSelected(MenuItem item){
//通過getItemid()判斷點擊的菜單項,接着加入自己需要的邏輯處理
switch(item.getItemid()){
case R.id.add_item:
Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
break;
}
}
上面都是一些在活動中常用的事件,最後還有一點就是摧毀活動,在平常使用中,我們通過Back鍵就可以摧毀當前活動了,但如果想要通過其他方式摧毀當前活動,則可以通過finish()這個方法就可以摧毀當前活動了,效果和Back一樣。
總結:
這一小節的學習,自己親自創建一個空項目,到創建一個活動,可以直觀的感受到什麼是活動,活動其實就是我們平常在APP當中看到一個一個個頁面,它裏面由不同的組件和佈局構成,而這些組件又通過不同的邏輯連接,最終實現不同的功能。