Android開發(fā)兩個activity之間傳值示例詳解
使用Inten的putExtra傳遞
- 第一個Activity中
//創(chuàng)建意圖對象 Intent intent = new Intent(this,MainActivity2.class); //設(shè)置傳遞鍵值對 intent.putExtra("name","花花"); //激活意圖 startActivity(intent);
- 第二個Activity中
// 獲取意圖對象 Intent intent = getIntent(); //獲取傳遞的值 String name= intent.getStringExtra("name"); //設(shè)置值 tv.setText(name);
使用Intention的Bundle傳遞
- 第一個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);
- 第二個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ù)據(jù)
- 第一個Activity中
Intent intent = new Intent(MainActivity.this,TwoActivity.class); //用一種特殊方式開啟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); }
- 第二個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ù)
- 第一個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);
- 第二個Activity中
SharedPreferences sp=getSharedPreferences("com.example.data4",0); sp.getString("name",""); tv1.setText(sp.getString("id","")); tv2.setText(sp.getString("name",""));
使用序列化對象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; } }
- 第一個Activity中
//創(chuàng)建意圖 Intent intent = new Intent(MainActivity.this,TwoActivity.class); DataBean bean = new DataBean(); //通過set方法把數(shù)據(jù)保存到DataBean對象中 bean.setName("啦啦"); bean.setSex("男"); intent.putExtra("key", bean); startActivity(intent);
- 第二個Activity中
Intent intent = getIntent(); //反序列化數(shù)據(jù)對象 Serializable se = intent.getSerializableExtra("key"); if(se instanceof DataBean){ //獲取到攜帶數(shù)據(jù)的DataBean對象db DataBean db = (DataBean) se; tv.setText(db.getName()+"==="+db.getSex()); }
使用靜態(tài)變量傳遞數(shù)據(jù)
- 第一個Activity中
Intent intent = new Intent(MainActivity.this,TwoActivity.class); TwoActivity.name="花花"; TwoActivity.str="在做什么"; startActivity(intent);
- 第二個Activity中
//靜態(tài)變量 protected static String name; protected static String str; tv.setText(str+name);
handler
- 第一個Activity中
//點擊跳轉(zhuǎn)第二個頁面 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,MainActivity2.class); startActivity(intent); } }); //創(chuàng)建一個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; } } };
- 第二個Activity中
//點擊按鈕,返回第一個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); } });
//點擊按鈕,10秒后 ,返回第一個activity btt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //開一個子線程 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(); } });
//點擊按鈕,每10秒 ,返回第一個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開發(fā)兩個activity之間傳值示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Android兩個activity傳值的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解析Android截取手機(jī)屏幕兩種實現(xiàn)方案
這篇文章主要介紹了解析Android截取手機(jī)屏幕兩種實現(xiàn)方案,非常具有實用價值,需要的朋友可以參考下2017-04-04Android中通過MediaStore獲取音樂文件信息方法
這篇文章主要介紹了Android中通過MediaStore獲取音樂文件信息方法,本文講解了獲取歌曲的名稱、歌曲的專輯名、歌曲的歌手名、歌曲文件的全路徑、歌曲文件的名稱、歌曲文件的發(fā)行日期等音樂文件信息的方法,需要的朋友可以參考下2015-04-04Android獲取手機(jī)聯(lián)系人電話號碼并返回結(jié)果
這篇文章主要為大家詳細(xì)介紹了Android獲取手機(jī)聯(lián)系人電話號碼并返回結(jié)果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Android開發(fā)手冊TextView屬性實現(xiàn)效果盤點
這篇文章主要為大家介紹了Android開發(fā)手冊TextView屬性實現(xiàn)的效果盤點及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Assert.assertEquals()方法參數(shù)詳解
本文詳細(xì)講解了Assert.assertEquals()方法參數(shù),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12Android Studio快捷鍵生成TAG、Log.x日志輸出介紹
這篇文章主要介紹了Android Studio快捷鍵生成TAG、Log.x日志輸出介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Android顯示系統(tǒng)SurfaceFlinger詳解
本文詳細(xì)講解了Android顯示系統(tǒng)SurfaceFlinger,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12