【小(xiǎo)編推薦】安卓開(kāi)發-默認程序打開(kāi)σ←₹新的(de)Activity

2016-04-14   |&n​λbsp;  發布者:梁國(guó)芳 &nbs✘₩≤p; |   查看(kàn)≈α☆‍:3320次

app開(kāi)發
 在一(yī)個(gè)Activity中可(kě)以使用(yòn£©₩ g)系統提供的(de)startActivity(Int≈δent intent)方法打開(kāi)新的(de)Act ™₹ivity,在打開(kāi)新的(de)Activity前,★$你(nǐ)可(kě)以決定是(shì)否為(wèiα™→)新的(de)Activity傳遞參數(shù):

第一(yī)種顯示意圖:

public class MainActivity extends Ac✘∑tivity {
  @Override prote≥ ♣≤cted void onCreate(BundΩ>¥le savedInstanceState) {
 ....™★...
 Button button =(α® Button) this.findViewById(R.id.button↑≥©);
 button.setOnClickListener(new Vieγ™ ₹w.OnClickListener(){//點擊該按♠₩λ鈕會(huì)打開(kāi)一(yī)個(gè)新的(de)Activi¶✔ty
  public void onClick("‍♠View v) {
      //新建一(yī)個(gè)顯式意圖,第一♦βφ(yī)個(gè)參數(shù)為(wèi)當前Activity>↕類對(duì)象,第二個(gè)參數(shù)為(wèi)你(nǐ)'&©>要(yào)打開(kāi)的(de)Activity類
      ¥→↔startActivity(new In™γtent(MainActivity.this≈∞, NewActivity.class));
‍$£∏ }});
         }
}

OtherActivity:


 

package com.example.→ lession12_activity;

im ₩ασport android.app.Activity;
import and©✘roid.content.ComponentNa←★λme;
import android.content.In∏≥tent;
import android.σπ±os.Bundle;
import android.view.V₽♠ε<iew;
import android.widget.♦₽Toast;

public class OtherActivit✘¥₽y extends Activity{

	@Over₽™♦ride
	protected voiε↕£δd onCreate(Bundle savedInstancγ≠↔eState) {
		
		super.onCreσα&₽ate(savedInstanceState);
		//設置顯示的(de)"÷¶視(shì)圖
		setContentView(R.™£layout.activity_other);
		
		
•'∑¶
	}
	
	public void back(View v)₹σ♠γ{
		Intent intent=new Intent()≥♥;
		//第一(yī)種跳(tiào)回的(deδ¥≠)方法
		//intent.setCl₽"∏assName("com.exa≤✔mple.lession12_activity"∑&®;, "com.example.lession12_a↔★ctivity.MainActivity");
™±✘"		//第二種
		ComponentName componen¥≥≈t=new ComponentName("com.exampl±λ✘∑e.lession12_activity&quo<♥©→t;, "com.example.les₹¥•sion12_activity.MainActivity&qu★β↓←ot;);
		intent.setCompo¥↑δnent(component);
		startA β≤ctivity(intent);
	}≈¶
}


第二種自(zì)定義隐式意圖:

MainActivity:

package com.example.lession↓♠₽12_activity;
import a★≈β≈ndroid.net.Uri;
import android.os.B→ε•undle;
import android.app ≥.Activity;
import android.content.Int₽↓λent;
import android.view.M​≠enu;
import android.view.View;

pu₩×blic class MainActivity ext &↔ends Activity {

	@Override
	prot≈β ected void onCreate(Bundle saved£‍✘​InstanceState) {
		super.onCreate(s♣∏avedInstanceState);
		setConte✔©&ntView(R.layout.activi<∏ty_main);
	}

	@Override
≥®₹
	public boolean onCr∞•eateOptionsMenu(Menu menu) {
		γ> // Inflate the menu; thi屩 s adds items to the ↕ πaction bar if it is present.
		getMe↔§&≤nuInflater().inflate(R.menu.main, m☆‌↑enu);
		return true;♦ σα
	}
	
	public void go(View v){∏Ω∞
		
		//自(zì)定義隐士意圖
		In‌ βtent intent=new Intent();
		//自(zì)定義的∏λ☆$(de)action
		intent.setAc€₽₽tion("www.csdn.net→$.hbsi");
		inten←α<±t.addCategory("android.intent.cat‌♣§egory.DEFAULT");
		intent.$£<φsetDataAndType(Uri.parse("csdnπ∏€≈://www.csdn.net/xx"),"i×≠Ω₩mage/jpeg");
		//執行(₽♣≥xíng)意圖
		startActivity(int>← ent);	
	}

}


布局文(wén)件(jiàn):

<RelativeLayout xmlns:andrσλoid="http://schemas.android. ♥₩com/apk/res/android"
    €σβxmlns:tools="http://schemas.an★☆∑droid.com/tools"
    android:layo♥♦ut_width="match_parent&↕₽✔✘quot;
    android:layout_height="∏≤match_parent"
    android:pa>↔ddingBottom="@dimen/activity_vert©‍ical_margin"
    android:paddinβ§gLeft="@dimen/acσ↓tivity_horizontal_mar↕↑gin"
    android:pad÷‌₹>dingRight="@dimen/activity_horizon$©₽¥tal_margin"
    android:paddi'∏γγngTop="@dimen/activity_vertical_ma≠↔•♥rgin"
    tools:con↑∑text=".MainActivity" σφ>

    <Button
       δ↔γ  android:id="@+id/b™¶♥λtn_go"
        android:la¥‍>yout_width="wrap_co€§Ω¶ntent"
        android:layo≈>'₩ut_height="wrap_content©‍∑"
        android:layout_alig→€★&nParentLeft="true"α$
        android:layout_alignPare₩✔♣ntRight="true"
 ¥$≠       android:layout_alignParentTλ≥♠•op="true"
        andr÷αoid:layout_marginTop="169dp&qu≤&∏≈ot;
        android:onClick=&quo€★★&t;go"
        and♣±©¶roid:text="@strin★&g/btn_go" />

</Relati✔®>'veLayout>


跳(tiào)轉到(dào)的(de)另一(yī)個(gè)布局文( ↔wén)件(jiàn)

<RelativeLayout xmlns:andro✔₹‌÷id="http://schemas.android.c<₽∏↕om/apk/res/android"
    ∏≈'≥xmlns:tools="httππ®p://schemas.android.com/tools"≠×;
    android:layout_width=&qu∏∏↔ot;match_parent"
    $™android:layout_height="mat✔↓¥®ch_parent"
    android:paddingBot •∏tom="@dimen/acti✘↔λvity_vertical_margin&q βuot;
    android:paddingLeft=&quo πt;@dimen/activity_ho×±rizontal_margin"
    android:p¥¥↓×addingRight="@dimen/activity_hori↔×"zontal_margin"
    android:ε≈♥✘paddingTop="@dimen/act×☆ivity_vertical_margin"
    too®♥∏ls:context=".MainActivi≠"↑ty" >

    <≥≈$;Button
        android:id="@+×>id/btn_back"
        android:lay™↕out_width="wrap_co★♠↓ntent"
        andr↔&♦≤oid:layout_height=&q £"uot;wrap_content&quo✘←πt;
        android:layout_alignPare‍​ntLeft="true"↓★
        android:la→↕φyout_alignParentRight="true"↕≠δ
        android:layout♥ _centerVertical="true"
÷♠
        android:onClick="b₹<₽₽ack"
        android:tex£≠→↔t="@string/btn_back"‍δ; />

</RelativeLayout>


項目清單中:

<?xml version="1.0" enco≤‌✘ding="utf-8"?>ε↕÷
<manifest xmlns:android="h£ λttp://schemas.android.comε≥&/apk/res/android"¶♣
    package="com.example"σ.lession12_activity"
✔ 
    android:versionCode=§®"1"
    android:v♦&ersionName="1.0" &gγ">t;

    <uses-sdk
        and£✔roid:minSdkVersion="≈ ♣;8"
        android:t ∑β✘argetSdkVersion="17&q÷→←→uot; />

    <appl®↕ication
        android:allowBackupλ≥="true"
        and÷®☆roid:icon="@drawable/ic_launche↕♠©×r"
        android:la‌λ×★bel="@string/app_name"
   ©↕λ     android:theme=&quo×₽t;@style/AppTheme" >​ £₩
        <activity
          ×☆ ©  android:name="com.example&↑ε₹.lession12_activity.Mai→>nActivity"
          λ♦↑  android:label="@string/appγ‌¥↓_name" >
           ♣±δ <intent-filter>
          ↓$      <action android:name=" π ↔android.intent.action&λ.MAIN" />

                &π₹lt;category android:name="₽₹δ;android.intent.cateα→✔×gory.LAUNCHER" /&g> &t;
            </intent-filt∏$er>
        </ac₽♥λtivity>
        
        
<activity
            androβ≈₩±id:name=".OtherActivity"±φ¥¥;>
            <!-×§ - 意圖過濾器(qì) -->
       "™"     <intent-filter >
       §σ↑≠         <action and•±←λroid:name="www.csdn.net♦®.hbsi"></action>÷∞;
                <data 
  ↔‌φ                  android:host="ww"‍"→w.csdn.net"
                ≥♣β£    android:mimeType="imag π±↓e/jpeg"
                    andr≈•₩¶oid:path="/xx&quo€←∑×t;
                    androφ♥id:scheme="csdn"
    ™α™                />
             ♠★©​   <category
                   ​δ¶  android:name="android.inten∞¥π×t.category.DEFAULT" />
      ¶‍      </intent-filt©≈er>
           
      ←§∑  </activity>

<activity android:name=".O'✔∑therActivity"> &l★₹t;!-- 意圖過濾器(qì) --> <intent-filte€σr > <action android∑‍→φ:name="www.csdn.ne∞♣t.hbsi"></action>↓σ∏Ω; <data android:host='↕"www.csdn.net&qu ↔↕ot; android:mimeType="image/jp§&λeg" android:path=&π÷quot;/xx" android:scheme="σ ♦$csdn" /> <catego•∏≥ry android:name="×β>§android.intent.category.DEFAULT&q↓γuot; /> </intent-filter> &★←σlt;/activity> </app εlication></manifest>
 


其中:

<activity
         σ<   android:name=".OtherActivity&quε‍ot;>
            <!-- 意圖過→§濾器(qì) -->
            <©₽♣↑;intent-filter >
        §β        <action android:name="w☆↓ww.csdn.net.hbsi"&£ gt;</action>
        ¶ β±        <data 
                  ¶₹  android:host="www.®←♠csdn.net"
                   ♠  android:mimeType="image/jp§‍eg"
              ÷"→®      android:path="/δ☆xx"
                  π♥¥•  android:scheme="csdn"♣÷®
                    />
        ←£‍¶        <category
         πδ           android:name="android.i≥☆ntent.category.DEFAULT"₹‍; />
            </intent-filte ≠×αr>
           
        </aλ↕ctivity>


這(zhè)段代碼和(hé)MainActivity中的(de$↔)自(zì)定義代碼相(xiàng)呼應,是(<Ωαshì)關鍵!

 

2、OtherActivity

package com.example.lession12_activity•×∑​;

import android.a☆‍ >pp.Activity;
import android.con₩$★→tent.ComponentName;
i★× mport android.content.Intent;
im←₹∏port android.os.Bundle;
im↕♠♥port android.view.Vie≥‍w;
import android.widget✔β.Toast;

public class OtherActiv‍Ω‍<ity extends Activity{

β♣© 	@Override
	protected void on≠α≤πCreate(Bundle savedInstanceState) {
		÷∏∞←
		super.onCreate(savedI∑∏nstanceState);
		//設置顯示的(de)視(shì)圖
↓±
		setContentView(R.layou¶←♥t.activity_other);
		
		
	}
	
∏©↓	public void back(View v){
		In∏γ±tent intent=new Intent()σε× ;
		//第一(yī)種跳(tiào)回的(de)方法
		//inte¶‌nt.setClassName("com.example ×α.lession12_activity&q‌↓♠✘uot;, "com.example.lession12γβ±₹_activity.MainActivity");
		/♠®&∑/第二種
		ComponentName component=ε>​new ComponentName("‍₩com.example.lession1‌ 2_activity", "₹←;com.example.lession12_activity.MainAc♠πtivity");
		intent.setCo☆©>mponent(component);
 × •
		startActivity(intent);
	}
}