加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

Android开发教程:畅聊显示Intent和隐式Intent

发布时间:2021-11-24 16:15:20 所属栏目:教程 来源:互联网
导读:Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于

Intent寻找目标组件的两种方式:
 
显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。
隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。
一.显式Intent
 
   一般情况下,一个Android应用程序中需要多个屏幕,即是多个Activity类,并且在这些Activity之间进行切换通过Intent机制来实现的。在同一个应用程序中切换Activity时,我们通常都知道要启动的Activity具体是哪一个,因此常用显式的Intent来实现的。
 
    下面的例子是在同一应用程序中MainActivity启动SecondActivity,下面的代码中,主要是为“转到SecondActivity”按钮添加了OnClickListener,使得按钮被点击时执行onClick()方法,onClick()方法中则利用了Intent机制,来启动SecondActivity,关键的代码是22~25行。
 
main.xml
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView    
        android:layout_width="fill_parent"   
        android:layout_height="wrap_content"   
        android:text="@string/hello1"
        />
    <Button   
        android:id="@+id/btn"
        android:layout_width="wrap_content"   
        android:layout_height="wrap_content"   
        android:text="转到SecondActivity"
        />
</LinearLayout>
second.xml
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView    
        android:layout_width="fill_parent"   
        android:layout_height="wrap_content"   
        android:text="@string/hello2"
        />
    <Button   
        android:id="@+id/secondBtn"
        android:layout_width="wrap_content"   
        android:layout_height="wrap_content"   
        android:text="返回"
        />
</LinearLayout>
MainActivity.java
 
package com.android.test.activity;  
 
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
 
public class MainActivity extends Activity {  
    private Button btn;  
    @Override
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        btn = (Button)findViewById(R.id.btn);  
        //响应按钮btn事件  
        btn.setOnClickListener(new OnClickListener() {        
            @Override
            public void onClick(View v) {  
                //显示方式声明Intent,直接启动SecondActivity  
                Intent it = new Intent(MainActivity.this,SecondActivity.class);  
                //启动Activity  
                startActivity(it);            
            }  
        });  
    }  
}
SecondActivity.java
 
package com.android.test.activity;  
 
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
 
public class SecondActivity extends Activity {  
    private Button secondBtn;  
    @Override
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.second);  
          
        secondBtn=(Button)findViewById(R.id.secondBtn);      
        //响应按钮secondBtn事件  
        secondBtn.setOnClickListener(new OnClickListener() {                      
            @Override
            public void onClick(View v) {  
                //显示方式声明Intent,直接启动MainActivity  
                Intent intent = new Intent(SecondActivity.this,MainActivity.class);  
                //启动Activity  
                startActivity(intent);                
            }  
        });  
    }  
}
AndroidManifest.xml清单文件,16~18行为SecondActivity在清单文件里的声明
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.test.activity"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />
 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SecondActivity"
                  android:label="@string/app_name">
        </activity>
    </application>
</manifest> 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读