• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 安卓學習筆記 隱式跳轉

    標簽: 安卓  隱式跳轉

    目錄

    顯式跳轉

    多用在APP內部跳轉使用

     mBtn1.setOnClickListener(new OnClickListener() {
           @Override
           public void onClick(View v) {
                 Intent inten=new Intent(MainActivity.this,Main2Activity.class);
                 startActivity(intent);
                }
            });

    隱式跳轉 (主要使用)

    多用在跨APP間
    實現的效果:-MainActivity跳轉到Main2Activity
    類似于常見的跳轉效果,但是這里使用到隱式跳轉知識

    1.MainActivity

    1.主MainActivity中的一個Button按鈕,注意,傳入的參數不是MainActivity.this和Main2Activity,而是我們自定義的一個參數(也就是這個參數可以隨便定義,但是這個自定義是基于Main2Activity的基礎上,也就是說,這個參數必須對應我們所要跳轉的ActivityManifest.xml的屬性)

    Button btn= (Button) findViewById(R.id.btn);
    
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    
            //這里的參數自定義的為:com.example
            Intent intent=new Intent("com.example");
    
            startActivity(intent);
        }
    });

    2.Main2Activity

    Main2Activity的Activity代碼塊-兩個按鈕一個圖片

    <?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:id="@+id/button11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="自己的跳轉" />
    
    
        <ImageView
            android:id="@+id/image1"
            android:layout_width="200dp"
            android:layout_height="200dp" />
    
        <Button
            android:id="@+id/button22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="跳轉到相機頁面" />
    
    </LinearLayout>
    

    3.在Manifest.xml中注冊使用

    Manifest.xml
    只需要注意一下Main2Activity中的代碼即可,不需要更改MainActivity代碼

    這里的和MainActivity一樣都有intent-filter標簽

    <activity android:name=".Main2Activity">
        <intent-filter>
             //和我們MainActivity中Intent的參數相對應 
            <action android:name="com.example"/>
                 //默認的類別,屬性(可以不添加) 
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

    隱式跳轉使用案例

    安卓原生相機拍照后返回到原界面

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.myactivity_layout);
        mBtn2 = (Button) findViewById(R.id.button22);
        mBtn2.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // 使用隱式跳轉,跨App跳轉
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent, CAPTURE);
            }
        });
    
        imageView = (ImageView) findViewById(R.id.image1);
    }

    構造方法

    // 此頁面發起請求的頁面完成返回時此頁面的回調
    // 參數一:請求碼
    // 參數二:結果碼
    // 參數三:如果上個頁面有數據,可以在第三個參數中取出
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d("MainActivity", "requestCode-->" + requestCode + ",resultCode-->" + resultCode);
    
        if (requestCode == CAPTURE) {
            // 從拍照頁面返回而來
            if (resultCode == RESULT_OK) {
                // 用戶成功拍照,可以用過返回的Intent取出響應的數據
                Bitmap bitmap = (Bitmap) data.getExtras().get("data");
                Log.d("MainActivity", "Bitmap:" + bitmap);
                //設置圖片顯示控件的圖片內容
                imageView.setImageBitmap(bitmap);
            } else {
                Toast.makeText(this, "拍照失敗或沒有沒有拍照!", Toast.LENGTH_LONG).show();
            }
    
        }
    }

    結果顯示

    這里寫圖片描述

    兩種方式總結:

    以上述MainActivity,Main2Activity為例,如果要實現MainActivity跳轉到Main2Activity
    簡單用隱式跳轉和顯示跳轉進行一個對比:

    對比差異:顯示跳轉指定了我們的始發地MainActivity,目的地Main2Activity,相對更加直白

    隱式跳轉并沒有明確指出我們跳轉到哪里,具體跳轉到哪個Activity,需要我們對比Manifest.xml中的action,category參數才能確定
    相對更加隱蔽

    版權聲明:本文為lewyu521原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/lewyu521/article/details/80831137

    智能推薦

    隱式Intent實現Activity跳轉

    在AndroidManifest.xml文件中,各個Activity的配置如下: ActivityMain的布局文件activity_main.xml如下: ActivityMain加載的menu文件menu_activity_main.xml如下: ActivityMain.java的Button響應代碼如下: ActivityMain.java的item響應代碼如下:    ...

    android學習筆記----隱式意圖和顯式意圖

    目錄 隱式意圖和顯式意圖: 使用意圖在activity之間傳遞數據(人品計算器):   隱式意圖和顯式意圖: 顯式意圖:顯式意圖明確指明了啟動活動的上下文和想要啟動的目標活動,顯式意圖明確指定了Intent應該傳遞給哪個組件。 隱式意圖:沒有明確指定組件名的Intent為隱式意圖。 Android系統會根據隱式意圖中設置的動作(action)、類別(category)、數據(URI和數據...

    安卓沉浸式(透明)狀態欄學習小結

    想做出好看的界面,看到扣扣界面狀態欄和toolbar(Actionbar)顏色一樣,就查了一下: 沉浸狀態欄 就是頂部狀態欄變得透明,背景變為activity的背景; 要求版本是5.0以上,不過現在應該沒有不符合的了(minsdk 21) 第一步 以下二選一 第二步 寫到這里運行就會發現一些問題,如圖 可以看到,狀態欄的顏色變了,但是actionbar卻被擠壓了,這是因為狀態欄透明后,整個布局向上...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡