這篇文章主要介紹“Android開發兩個activity之間傳值的方法”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android開發兩個activity之間傳值的方法”文章能幫助大家解決問題。
第一個Activity中
//創建意圖對象
Intent intent = new Intent(this,MainActivity2.class);
//設置傳遞鍵值對
intent.putExtra("name","花花");
//激活意圖
startActivity(intent);第二個Activity中
// 獲取意圖對象
Intent intent = getIntent();
//獲取傳遞的值
String name= intent.getStringExtra("name");
//設置值
tv.setText(name);第一個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中
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();第一個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",""));工具類
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);
第一個Activity中
//點擊跳轉第二個頁面
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
startActivity(intent);
}
});
//創建一個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秒之后發送
Thread.sleep(10000);
handler=MainActivity.mhandler;
Message message=new Message();
message.what=1;
handler.sendMessage(message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
});//點擊按鈕,每10秒 ,返回第一個activity一次(循環一次),一共返回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開發兩個activity之間傳值的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。