首先得有兩個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...