您好,登錄后才能下訂單哦!
在Android中怎么實現與Activity的數據傳遞?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
使用Inten的putExtra傳遞
第一個Activity中
//創建意圖對象 Intent intent = new Intent(this,TwoActivity.class); //設置傳遞鍵值對 intent.putExtra("data",str); //激活意圖 startActivity(intent);
第二個Activity中
// 獲取意圖對象 Intent intent = getIntent(); //獲取傳遞的值 String str = intent.getStringExtra("data"); //設置值 tv.setText(str);
使用Intention的Bundle傳遞
第一個Activity中
//創建意圖對象 Intent intent = new Intent(MainActivity.this,TwoActivity.class); //用數據捆傳遞數據 Bundle bundle = new Bundle(); bundle.putString("data", str); //把數據捆設置改意圖 intent.putExtra("bun", bundle); //激活意圖 startActivity(intent);
第二個Activity
//獲取Bundle Intent intent = getIntent(); Bundle bundle = intent.getBundleExtra("bun"); String str = bundle.getString("data"); tv.setText(str);
使用Activity銷毀時傳遞數據
第一個Activity中
Intent intent = new Intent(MainActivity.this,TwoActivity.class); //用一種特殊方式開啟Activity startActivityForResult(intent, 11); //設置數據 protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String str = data.getStringExtra("data"); tvOne.setText(str); }
第二個activity中
//設置返回的數據 Intent intent = new Intent(); intent.putExtra("data", edtOne.getText().toString().trim()); setResult(3, intent); //關閉當前activity finish();
SharedPreferences傳遞數據
第一個Activity中
SharedPreferences sp = this.getSharedPreferences("info", 1); //獲取sp編輯器 Editor edit = sp.edit(); edit.putString("data", str); edit.commit(); //創建意圖對象 Intent intent = new Intent(MainActivity.this,TwoActivity.class); //激活意圖 startActivity(intent);
第二個Activity中
SharedPreferences sp = this.getSharedPreferences("info", 1); //設置數據 tv.setText(sp.getString("data", ""));
使用序列化對象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
//創建意圖 Intent intent = new Intent(MainActivity.this,TwoActivity.class); DataBean bean = new DataBean(); //通過set方法把數據保存到DataBean對象中 bean.setName("啦啦"); bean.setSex("男"); intent.putExtra("key", bean); startActivity(intent);
第二個Activity
Intent intent = getIntent(); //反序列化數據對象 Serializable se = intent.getSerializableExtra("key"); if(se instanceof DataBean){ //獲取到攜帶數據的DataBean對象db DataBean db = (DataBean) se; tv.setText(db.getName()+"==="+db.getSex()); }
使用靜態變量傳遞數據
第一個Activity
Intent intent = new Intent(MainActivity.this,TwoActivity.class); TwoActivity.name="牛逼"; TwoActivity.str="你說"; startActivity(intent);
第二個Activity
//靜態變量 protected static String name; protected static String str; tv.setText(str+name);
看完上述內容,你們掌握在Android中怎么實現與Activity的數據傳遞的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。