隱式Intent實現Activity跳轉
標簽: android studio
在AndroidManifest.xml文件中,各個Activity的配置如下:
<activity
android:name=".ActivityMain"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".ActivitySub1">
<intent-filter>
<action android:name="android.intent.action.ActivitySub1"/>
<category android:name="android.intent.category.ActivitySub1"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".ActivitySub2">
<intent-filter>
<action android:name="android.intent.action.ActivitySub2"/>
<category android:name="android.intent.category.ActivitySub2"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".ActivitySub3">
<intent-filter>
<action android:name="android.intent.action.ActivitySub3"/>
<category android:name="android.intent.category.ActivitySub3"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
ActivityMain的布局文件activity_main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.horrorkwangmail.a20171208_appnameandactivitytitlename.ActivityMain">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="This is Activity main"
android:textAllCaps="false"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:id="@+id/buttonActivitySub1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="30dp"
android:text="Go to Activity sub 1"
android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
android:onClick="buttonClick"/>
<Button
android:id="@+id/buttonActivitySub2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="30dp"
android:text="Go to Activity sub 2"
android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonActivitySub1"
android:onClick="buttonClick"/>
<Button
android:id="@+id/buttonActivitySub3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="30dp"
android:text="Go to Activity sub 3"
android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonActivitySub2"
android:onClick="buttonClick"/>
</android.support.constraint.ConstraintLayout>
ActivityMain加載的menu文件menu_activity_main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/itemActivitySub1"
android:title="Activity sub 1"/>
<item
android:id="@+id/itemActivitySub2"
android:title="Activity sub 2"/>
<item
android:id="@+id/itemActivitySub3"
android:title="Activity sub 3"/>
</menu>
ActivityMain.java的Button響應代碼如下:
public void buttonClick(View v) //點擊各個Button的響應
{
switch (v.getId())
{
case R.id.buttonActivitySub1:
Intent intent1=new Intent("android.intent.action.ActivitySub1");
intent1.addCategory("android.intent.category.ActivitySub1");
startActivity(intent1);
break;
case R.id.buttonActivitySub2:
Intent intent2=new Intent("android.intent.action.ActivitySub2");
intent2.addCategory("android.intent.category.ActivitySub2");
startActivity(intent2);
break;
case R.id.buttonActivitySub3:
Intent intent3=new Intent("android.intent.action.ActivitySub3");
intent3.addCategory("android.intent.category.ActivitySub3");
startActivity(intent3);
break;
default:
break;
}
}
ActivityMain.java的item響應代碼如下:
public boolean onOptionsItemSelected(MenuItem item) //點擊menu的各個item的響應
{
switch (item.getItemId())
{
case R.id.itemActivitySub1:
Intent intent1=new Intent();
intent1.setAction("android.intent.action.ActivitySub1");
intent1.addCategory("android.intent.category.ActivitySub1");
startActivity(intent1);
break;
case R.id.itemActivitySub2:
Intent intent2=new Intent();
intent2.setAction("android.intent.action.ActivitySub2");
intent2.addCategory("android.intent.category.ActivitySub2");
startActivity(intent2);
break;
case R.id.itemActivitySub3:
Intent intent3=new Intent();
intent3.setAction("android.intent.action.ActivitySub3");
intent3.addCategory("android.intent.category.ActivitySub3");
startActivity(intent3);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
而在ActivitySub1.java文件、ActivitySub2.java文件和ActivitySub3.java文件中,使用隱式Intent跳轉到Activity main中,使用的代碼如下:
Button buttonBackToActivityMain=findViewById(R.id.buttonBackToActivityMain);
buttonBackToActivityMain.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Intent intent=new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
startActivity(intent);
}
});
真機測試視頻如下:
智能推薦
kotlin實現使用Intent進行activity之間的跳轉
kotlin實現使用Intent進行activity之間的跳轉 xml代碼 activity_main代碼 activity_scecond代碼(用于顯式intent) activity_hello代碼(用于顯式intent及activity間數據傳輸) Kotlin代碼 MainActivity代碼 Scecond代碼(用于顯式intent) Hello代碼(用于顯式intent及activit...
Android 顯示Intent和隱式Intent
(二)Intent <action>用于表示這個activity能干啥 <category>更加精細的表示能干啥 指明當前想要執行的活動,在不同組件中傳遞數據。 1.顯式Intent 從ActivityTest界面跳轉到SecondActicvity界面 2.隱式Intent 更多的應用于別的App活動 將自己能做的事情提供給別的應用用,別的應用通過action和categ...
隱式Intent的使用 app分享功能的實現
在項目開發中,分享功能已成為必備,下面我們將使用隱式的Intent來實現 創建分享幾個必要的參數 1.將被分享的類型:文字,圖片,視屏 2.選擇器的標題 3.將被分享的數據 在Activity中新建一個shareText方法 調用分享功能的代碼 app截圖 在這里可以看,我們成功將Hello分享給QQ應用,實現分享功能關鍵在熟悉ShareCompat.IntentBuilder類的使用,通過使用B...
Android Intent隱式使用
創建工程: 在MainActivity對應的activity_main.xml視圖中創建一個button,值是1 在SecondActivity對應的second_layout創建一個button作為跳轉后的視圖,值是:第二個視圖 實現過程解析在代碼中: 實現效果: 在上圖中點擊button跳轉: MainActivity代碼和解析如下: activity_main.xml代碼: S...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...