Android開(kāi)發(fā)兩個(gè)activity之間傳值示例詳解
使用Inten的putExtra傳遞
- 第一個(gè)Activity中
//創(chuàng)建意圖對(duì)象
Intent intent = new Intent(this,MainActivity2.class);
//設(shè)置傳遞鍵值對(duì)
intent.putExtra("name","花花");
//激活意圖
startActivity(intent);
- 第二個(gè)Activity中
// 獲取意圖對(duì)象
Intent intent = getIntent();
//獲取傳遞的值
String name= intent.getStringExtra("name");
//設(shè)置值
tv.setText(name);
使用Intention的Bundle傳遞
- 第一個(gè)Activity中
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
Bundle bundle=new Bundle();
bundle.putInt("id",2);
bundle.putString("name",ss);
intent.putExtra("bundle",bundle);
startActivity(intent);
- 第二個(gè)Activity中
Intent intent=getIntent();
Bundle bundle=intent.getBundleExtra("bundle");
final int id = bundle.getInt("id");
final String name = bundle.getString("name");
tv.setText(id);
tv2.setText(name);
使用Activity銷毀時(shí)傳遞數(shù)據(jù)
- 第一個(gè)Activity中
Intent intent = new Intent(MainActivity.this,TwoActivity.class);
//用一種特殊方式開(kāi)啟Activity
startActivityForResult(intent, 11);
//設(shè)置數(shù)據(jù)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String str = data.getStringExtra("data");
tvOne.setText(str);
}
- 第二個(gè)Activity中
//設(shè)置返回的數(shù)據(jù)
Intent intent = new Intent();
intent.putExtra("data", edtOne.getText().toString().trim());
setResult(3, intent);
//關(guān)閉當(dāng)前activity
finish();
SharedPreferences傳遞數(shù)據(jù)
- 第一個(gè)Activity中
SharedPreferences sp=getSharedPreferences("com.example.data4",0);
final SharedPreferences.Editor edit = sp.edit();
edit.putString("name",ss);
edit.putString("id","8");
edit.apply();
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
startActivity(intent);
- 第二個(gè)Activity中
SharedPreferences sp=getSharedPreferences("com.example.data4",0);
sp.getString("name","");
tv1.setText(sp.getString("id",""));
tv2.setText(sp.getString("name",""));
使用序列化對(duì)象Seriazable
- 工具類
import java.io.Serializable;
class DataBean implements Serializable {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
- 第一個(gè)Activity中
//創(chuàng)建意圖
Intent intent = new Intent(MainActivity.this,TwoActivity.class);
DataBean bean = new DataBean();
//通過(guò)set方法把數(shù)據(jù)保存到DataBean對(duì)象中
bean.setName("啦啦");
bean.setSex("男");
intent.putExtra("key", bean);
startActivity(intent);
- 第二個(gè)Activity中
Intent intent = getIntent();
//反序列化數(shù)據(jù)對(duì)象
Serializable se = intent.getSerializableExtra("key");
if(se instanceof DataBean){
//獲取到攜帶數(shù)據(jù)的DataBean對(duì)象db
DataBean db = (DataBean) se;
tv.setText(db.getName()+"==="+db.getSex());
}
使用靜態(tài)變量傳遞數(shù)據(jù)
- 第一個(gè)Activity中
Intent intent = new Intent(MainActivity.this,TwoActivity.class); TwoActivity.name="花花"; TwoActivity.str="在做什么"; startActivity(intent);
- 第二個(gè)Activity中
//靜態(tài)變量 protected static String name; protected static String str; tv.setText(str+name);
handler
- 第一個(gè)Activity中
//點(diǎn)擊跳轉(zhuǎn)第二個(gè)頁(yè)面
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
startActivity(intent);
}
});
//創(chuàng)建一個(gè)handler,處理信息
@SuppressLint("HandlerLeak")
public static Handler mhandler=new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
Log.e("ddddddd","Dddddddd");
break;
}
}
};
- 第二個(gè)Activity中
//點(diǎn)擊按鈕,返回第一個(gè)activity
btt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handler=MainActivity.mhandler;
Message message=new Message();
message.what=1;
handler.sendMessage(message);
}
});
//點(diǎn)擊按鈕,10秒后 ,返回第一個(gè)activity
btt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//開(kāi)一個(gè)子線程
new Thread(new Runnable() {
@Override
public void run() {
try {
//10秒之后發(fā)送
Thread.sleep(10000);
handler=MainActivity.mhandler;
Message message=new Message();
message.what=1;
handler.sendMessage(message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
});
//點(diǎn)擊按鈕,每10秒 ,返回第一個(gè)activity一次(循環(huán)一次),一共返回10次
btt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
int i=0;
do {
try {
Thread.sleep(10000);
handler=MainActivity.mhandler;
Message message=new Message();
message.what=1;
handler.sendMessage(message);
i++;
} catch (InterruptedException e) {
e.printStackTrace();
}
}while (i<10);
}
}).start();
}
});
以上就是Android開(kāi)發(fā)兩個(gè)activity之間傳值示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Android兩個(gè)activity傳值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android ZxingPlus精簡(jiǎn)的二維碼框架示例代碼
下面小編就為大家分享一篇Android ZxingPlus精簡(jiǎn)的二維碼框架示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Android使用SoundPool實(shí)現(xiàn)播放音效
這篇文章主要為大家詳細(xì)介紹了Android使用SoundPool實(shí)現(xiàn)播放音效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android實(shí)現(xiàn)背景顏色滑動(dòng)漸變效果的全過(guò)程
在Android開(kāi)發(fā)中,經(jīng)常需要設(shè)置控件的背景顏色或者圖片的src顏色,下面這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)背景顏色滑動(dòng)漸變效果的相關(guān)資料,本文通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Android編程之界面跳動(dòng)提示動(dòng)畫效果實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程之界面跳動(dòng)提示動(dòng)畫效果實(shí)現(xiàn)方法,實(shí)例分析了Android動(dòng)畫效果的布局及功能相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Android Studio 實(shí)現(xiàn)九宮格功能
這篇文章主要介紹了Android Studio 實(shí)現(xiàn)九宮格,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Android之利用EventBus發(fā)送消息傳遞示例
本篇文章主要介紹了Android之利用EventBus進(jìn)行消息傳遞示例。EventBus是一款針對(duì)Android優(yōu)化的發(fā)布/訂閱事件總線,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-02-02
Android開(kāi)發(fā)中RecyclerView模仿探探左右滑動(dòng)布局功能
本文給大家分享android開(kāi)發(fā)中RecyclerView模仿探探左右滑動(dòng)布局功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01
Flutter實(shí)現(xiàn)仿京東商品詳情底部操作欄
這篇文章主要為大家詳細(xì)介紹了Flutter如何仿京東實(shí)現(xiàn)商品詳情底部操作欄,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-06-06

