[英]How to send info to mainActivity back from Activity 2 without killing Activity 2
[英]How to send multiple data strings back to MainActivity?
我想使用意圖將多個輸入字段從一個活動發送到主要活動。 但是在那之后我的應用程序沒有運行。
我的輸入代碼是:-
子活動中的代碼以發送數據
ivHappy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("name",etName.getText());
intent.putExtra("number",etNumber.getText());
intent.putExtra("website",etWebsite.getText());
intent.putExtra("loc",etLocation.getText());
intent.putExtra("smileyCode",1);
setResult(RESULT_OK,intent);
Activity2.this.finish();
}
});
接收數據的代碼
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==ACTIVITY2){
if(resultCode==RESULT_OK){
int x = Integer.parseInt(data.getStringExtra("smileyCode"));
if(x==1){
ivPic.setImageResource(R.drawable.happy);
}
if(x==2){
ivPic.setImageResource(R.drawable.neutral);
}
if(x==3){
ivPic.setImageResource(R.drawable.sad);
}
number = data.getStringExtra("number");
name = data.getStringExtra("name");
website = data.getStringExtra("website");
location = data.getStringExtra("loc");
ivPic.setVisibility(View.VISIBLE);
ivDial.setVisibility(View.VISIBLE);
ivWeb.setVisibility(View.VISIBLE);
ivLoc.setVisibility(View.VISIBLE);
}
但這是行不通的。 那么我應該如何將多個輸入發送回 mainActivity?
在您獲取文本時的子活動中,您應該將它們轉換為字符串。 像這樣 theName.getText().toString()
請嘗試以下操作,因為在 String 中發送和接收數據總是更好,因此會發生轉換錯誤,但通過這種方式,您必須使您的onActivityResult
方法足夠智能,以知道這個額外的內容是 String 還是 Int 或 Float 等。目前沒有辦法解決它但我認為SafeArgs很快就會解決這個問題(我希望)
在設置 Extra 時,將所有內容保留在 Int 中。
intent.putExtra("name",etName.getText());
intent.putExtra("number",etNumber.getText());
intent.putExtra("website",etWebsite.getText());
intent.putExtra("loc",etLocation.getText());
intent.putExtra("smileyCode",Integer.toString(1));
同時提取額外的轉換字符串到給定的所需類型。
intent.getExtra("name");
intent.getExtra("number");
intent.getExtra("website");
intent.getExtra("loc");
Integer.valueOf(intent.getExtra("smileyCode"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.