【全國】 集團簡介 關(guān)注我們
幫學(xué)院 商標(biāo)分類表-2024尼斯分類 知識產(chǎn)權(quán)交易

快幫集團

android頁面跳轉(zhuǎn)和切換的方式

2019-03-23

第一種方式,用action來跳轉(zhuǎn)。

 

1、使用Action跳轉(zhuǎn),如果有一個程序的 AndroidManifest.xml中的某一個ActivityIntentFilter段中定義了包含了相同的Action那么這個Intent 就與這個目標(biāo)Action匹配。如果這個IntentFilter段中沒有定義 Type,Category,那么這個 Activity就匹配了。但是如果手機中有兩個以上的程序匹配,那么就會彈出一個對話可框來提示說明。


Action的值在Android中有很多預(yù)定義,如果你想直接轉(zhuǎn)到你自己定義的Intent接收者,你可以在接收者的 IntentFilter中加入一個自定義的Action值(同時要設(shè)定 Category值為"android.intent.category.DEFAULT"),在你的Intent中設(shè)定該值為Intent Action,就直接能跳轉(zhuǎn)到你自己的Intent接收者中。因為這個Action在系統(tǒng)中是唯一的。

 

2,data/type,你可以用Uri來做為data,比如Uri uri = Uri.parse(http://www.google.com);


Intent i = new Intent(Intent.ACTION_VIEW,uri);手機的Intent分發(fā)過程中,會根據(jù)http://www.google.com scheme判斷出數(shù)據(jù)類型type


手機的Brower則能匹配它,在BrowerManifest.xml中的IntenFilter中首先有ACTION_VIEW Action,也能處理http:type。

 

3,至于分類Category,一般不要去在Intent中設(shè)置它,如果你寫Intent的接收者,就在Manifest.xml Activity IntentFilter中包含android.category.DEFAULT,這樣所有不設(shè)置 CategoryIntent.addCategory(String c);)的Intent都會與這個Category匹配。

 

4,extras(附加信息),是其它所有附加信息的集合。使用extras可以為組件提供擴展信息,比如,如果要執(zhí)行發(fā)送電子郵件這個動作,可以將電子郵件的標(biāo)題、正文等保存在extras里,傳給電子郵件發(fā)送組件。

 

Java代碼 package com.android.edit_text;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

import android.widget.EditText;

 

public class MyEditText extends Activity {

 

private TextView m_TextView;

private EditText m_EditText;

 

@Override

public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

 

       m_EditText = (EditText) this.findViewById(R.id.EditText01);

       m_EditText.setOnKeyListener(editTextKeyListener);

}

 

private EditText.OnKeyListener editTextKeyListener = new EditText.OnKeyListener() {

 

       @Override

       public boolean onKey(View arg0, int arg1, KeyEvent arg2) {

      

                     // action跳轉(zhuǎn),需要在AndroidManifest.xml中配置action

         Intent i = new Intent("android.intent.action.mydialog");

         MyEditText.this.startActivity(i);

        

         return false;

       }

};

}

復(fù)制代碼Xml代碼 <?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.android.edit_text" android:versionCode="1"

android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

       <activity android:name=".MyEditText" android:label="@string/app_name">

        < intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        < /intent-filter>

      < /activity>

            <!--配置跳轉(zhuǎn)activity-->

       <activity android:name="com.android.dialog.MyDialog">

        < intent-filter>

<!--配置action路徑-->

            <action android:name="android.intent.action.mydialog" />

            <category android:name="android.intent.category.DEFAULT" />

        < /intent-filter>

      < /activity>

</application>

<uses-sdk android:minSdkVersion="7" />

 

</manifest>

復(fù)制代碼第二種方式,用類名跳轉(zhuǎn)。

 

Intent負(fù)責(zé)對應(yīng)用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述, 負(fù)責(zé)找到對應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。Intent在這里起著實現(xiàn)調(diào)用者與被調(diào)用者之間的解耦作用。

Intent傳遞過程中,要找到目標(biāo)消費者(另一個Activity,IntentReceiverService),也就是Intent的響應(yīng)者。

 

Java代碼 package com.Android;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

 

public class FormStuff extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.formstuff);

 

       final ImageButton button = (ImageButton) findViewById(R.id.android_button);

       button.setOnClickListener(new OnClickListener() {

         public void onClick(View v) {

// 用類名跳轉(zhuǎn),需要在AndroidManifest.xml中申明activity

            Intent intent = new Intent(FormStuff.this, HelloTabWidget.class);

            startActivity(intent);

         }

       });

 

}

復(fù)制代碼Xml代碼 <?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.Android" android:versionCode="1" android:versionName="1.0">

 

<application android:icon="@drawable/icon" android:theme="@android:style/Theme.NoTitleBar">

       <activity android:name=".FormStuff" android:label="@string/app_name">

文章內(nèi)容來源于網(wǎng)絡(luò),侵刪

常見問題

京公網(wǎng)安備 11010802036823號

   

京ICP備16051929號

   

增值電信業(yè)務(wù)許可證編號:京B2-20190686

   

專利代理機構(gòu)代碼:16087

   

人力資源服務(wù)許可證編號:1101082019043

   

代理記賬許可證書編號:DLJZ11010820210015

0