Android學習筆記(建立Menu,Intent的使用)
//Test1.java
package com.activitytest.testactivity2;
import android.app.Activity;
import android.app.IntentService;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;
/**
* Intent用於連線Activity,以及Activity之間傳遞資料(從活動之間切換顯示資訊)
* 還可用於傳送廣播、服務等場景
*/
public class Test1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState); //初始化元件
requestWindowFeature(Window.FEATURE_NO_TITLE); //隱藏清單檔案中定義的標題欄label,要在顯示檢視之前使用
setContentView(R.layout.first_layout); //在介面中載入佈局檔案
Button button1 = (Button)findViewById(R.id.button_1); //id尋找View
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)//點選按鈕就會執行此方法;
{
//Toast類用於將一些短小的資訊通知給客戶,一段時間後會消失,並且不會佔用任何的螢幕空間。
//makeText()為靜態方法,第一個引數是Context抽象類,它是Activity等的父類,而Test1類直接繼承
//了Activity類,所以直接使用子類的物件向上轉型傳入引數,第三個引數是Toast顯示的時長
//Toast.makeText(Test1.this,"You clicked Button 1", Toast.LENGTH_SHORT).show();
//finish(); //銷燬活動
//下面使用Intent,以Test1活動作為上下文,通過按鈕Button 1啟動SecondActivity
//以下是顯式Intent的使用
// Intent intent=new Intent(Test1.this,SecondActivity.class); //Intent(Context packageContext, Class<?> cls) ,
//第一個參數列示以Test1活動作為上下文,在Tes1活動的基礎上(點選Button 1後)開啟SecondAcivity活動
//startActivity(intent);//啟動Intent
//以下是隱式Intent的使用:
//先在清單檔案中intent-filter中新增action和category標籤定義android:name的內容,然後在java檔案中
//使用intent的有參建構函式傳入action的內容,使用Intent類的addCategory()方法傳入category的內容可以新增category
//但是需要在清單檔案中加入此category
Intent intent = new Intent("com.activitytest.testactivity2.ACTION_START");
intent.addCategory("com.activitytest.testactivity2.MY_CATEGORY");
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) //每一個Activity只有唯一一個Menu,建立選單時會觸發函式
{//第一次初始化選單例項時呼叫inflate方法
getMenuInflater().inflate(R.menu.main,menu);//引數:建立選單的檔案,選單Menu的物件
return true; //返回true表示允許建立的選單能夠顯示出來,
}
@Override
public boolean onOptionsItemSelected(MenuItem item) //讓選單的item選項響應事件,點選item就會自動執行此方法,所以要進行過載
{
switch(item.getItemId()) //每個item都有自己的id
{
case R.id.add_item:
Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show(); //Menuitem類的item物件
break;
case R.id.remove_item:
Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
break;
default:
}
return true; //true表示該方法執行完畢後,點選事件不會再向下一個事件處理方法傳遞了
}
}
menu資料夾下的main.xml檔案:
<!--res/menu/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>
//SecondActivity.java
package com.activitytest.testactivity2;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
/**
* 先在second_layout.xml中定義一個按鈕,然後在java檔案中呼叫setConteneView方法實現引入此檔案作為引數
* 最後要在Manifest.xml中對此活動檔案進行註冊
*/
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); //隱藏標題欄
setContentView(R.layout.second_layout);
}
}
<!--AndroidManifest.xml清單註冊檔案-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.activitytest.testactivity2">
<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=".Test1"
android:label="This is Test1 activity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.activitytest.testactivity2.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.activitytest.testactivity2.MY_CATEGORY"/>
</intent-filter>
</activity>
</application>
</manifest>
<!--layout/first_layout.xml-->
<?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">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button_1"
android:text="Button 1"/>
</LinearLayout>
<!--layout/second_layout.xml-->
<?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_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 2" />
</LinearLayout>
相關文章
- 【筆記】【Android】Manifest中的intent-filter使用筆記AndroidIntentFilter
- android基礎學習-android篇day16-Menu的使用Android
- Android 學習筆記雜記Android筆記
- Android學習筆記·ANRAndroid筆記
- Android學習筆記·HandlerAndroid筆記
- Android學習筆記·ADBAndroid筆記
- Android學習筆記一Android筆記
- Android SQLite學習筆記AndroidSQLite筆記
- Android Linker學習筆記Android筆記
- Android Studio學習筆記Android筆記
- Android學習筆記14-從原始碼分析Toast的建立過程Android筆記原始碼AST
- Android 學習筆記核心篇Android筆記
- Android Gradle 學習筆記整理AndroidGradle筆記
- Android 學習筆記思考篇Android筆記
- 2018.03.06 Android Handler學習筆記Android筆記
- Android 開發學習筆記Android筆記
- 使用 seed 命令建立模擬資料(學習筆記)筆記
- Android studio(建立、監聽器intent選單)AndroidIntent
- Android中的intentAndroidIntent
- Android 學習筆記架構篇Android筆記架構
- React Native Android學習筆記 - 2015React NativeAndroid筆記
- 2018.03.16、Android-IntentService學習筆記AndroidIntent筆記
- Android環境搭建學習筆記Android筆記
- Android學習筆記-Activity的啟動模式Android筆記模式
- JavaScript中的物件學習筆記(概述和建立)JavaScript物件筆記
- Laravel學習筆記七-建立部落格Laravel筆記
- MySQL學習筆記——建立與約束MySql筆記
- numpy的學習筆記\pandas學習筆記筆記
- Android菜鳥學習js筆記一AndroidJS筆記
- Android卡頓優化學習筆記Android優化筆記
- 2018.03.30、Android-ObjectBox學習筆記1AndroidObject筆記
- Android 快取工具 DiskLruCache 學習筆記Android快取筆記
- Android Intent ServiceAndroidIntent
- Java學習筆記【1】陣列的宣告和建立Java筆記陣列
- Vue學習筆記之Webpack的使用Vue筆記Web
- innodb學習筆記(一) aio的使用筆記AI
- Egg 學習筆記 - 外掛的使用筆記
- Beautiful Soup庫的使用(學習筆記)筆記