Android中實現頁面跳轉並傳參

2021-09-20 13:25:48 字數 3115 閱讀 1945

首先得有兩個activity,姑且取個名字,mainactivity和jumpactivity,如何從mainactivity跳轉到jumpactivity呢?

其實就是通過intent實現的,就是下面這樣:

// 其中mainactivity是當前頁面,jumpactivity是要跳轉的頁面

intent intent = new intent(mainactivity.this,jumpactivity.class);

startactivity(intent);

方法很簡單,就兩行**的事,但是,有一點需要注意的是,一定要在androidmanifest.xml中進行註冊啊!

當然了,如果自己新建了包,記得把路徑改了,至於裡面的屬性,這裡就不再細說了,我們這次的重點是傳參。

1. 簡單引數傳遞

利用intent的extra部分來儲存我們想要傳遞的資料,這可能是最簡單的一種方法了。

1.1 設定引數

intent intent = new intent(mainactivity.this,jumpactivity.class);

// 設定你要傳的引數

intent.putextra("name", "hsl");

startactivity(intent);

1.2 接收引數

// 使用intent物件得到mainactivity中傳過來的引數

intent intent = getintent();

string list = intent.getstringextra("name");

這裡需要提一下的是,我們使用的是intent直接傳遞資料,還有一種方法是通過bundle來實現的,其實,兩種方式差別不大:

1.3 bundle設定引數

intent intent = new intent(mainactivity.this,jumpactivity.class);

// 設定你要傳的引數

bundle bundle = new bundle();

bundle.putstring("name", "hsl");

intent.putextras(bundle);

startactivity(intent);

1.4 bundle接收引數

bundle bundle = this.getintent().getextras();

string data= bundle.getstring("name");

2. 通過實現parcelable介面parcelable方式實現的原理是將乙個完整的物件進行分解 ,從而達到例項化物件的目的。實現parcelable介面的類還必須有乙個名為creator的靜態字段,它是實現parcelable的物件。

2.1 自定義myparcelable

其實這個可以跳過,因為我們一般自定義的類會繼承自帶的parcelable,不用自己去定義,當然,自定義的也是沒有問題的。

public class myparcelable implements parcelable 

public void writetoparcel(parcel out, int flags)

public static final parcelable.creatorcreator

= new parcelable.creator()

public myparcelable newarray(int size)

};private myparcelable(parcel in)

}

2.2 自定義類

public class person implements parcelable 

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

protected person(parcel in)

public static final parcelable.creatorcreator = new creator()

@override

public person newarray(int size)

};@override

public int describecontents()

@override

public void writetoparcel(parcel dest, int flags)

}

在writetoparcel這個方法中 , 字串資料就呼叫writestring()方法 , 整數資料就呼叫writeint()方法 , 其他資料形式類似,總之,要一一對應。

2.3 設定引數

person person = new person("hsl", 18);

intent intent = new intent(mainactivity.this,jumpactivity.class);

intent.putextra("person", person);

startactivity(intent);

2.4 接收引數

person person = (person) getintent().getextras().get("person");

log.w(tag,"name:"+person.getname());

log.w(tag,"name:"+person.getage());

最後的測試結果:

暫時就說到這吧,後續也會補充新的方法。

Android頁面跳轉

頁面跳轉大致分為兩種,一種是顯示跳轉,一種是隱式跳轉,目前正在學習中,只知道這兩種 顯示跳轉 第乙個引數 上下文 第二個引數 要跳轉的頁面 intent intent new intent myactivity.this,mainactivity.class 加資料 第乙個引數 鍵 第二個引數 值 ...

android 頁面跳轉 action

第乙個頁面中的按鈕事件 intent intent new intent intent.setaction con.zhougb.test.second startactivity intent 第二個頁面在androidmanifest.xml檔案中的宣告方式 通過這樣的方式,就可以通過actio...

vue中跳轉頁面並傳遞引數

link to query path path也可以用路由檔案裡面的name值,兩者都可以進行路由導航 params 要傳遞的引數,引數可以直接 key value的形式傳遞 query 通過url來傳遞引數的,引數同樣可以使key value形式傳遞 同樣可以通過 this.router.push...