2014-09-03 63 views
0

大家好,如果您願意幫助我。我被困在如何從其他活動中檢索包數據。基本上我有兩個活動,即當我在第一個活動上按下按鈕時,它將繼續進行第二個活動,然後設置稍後要在第一個活動上傳遞的字符串值。我所做的是我使用該包來放置字符串值。我的問題是,我如何從第二個活動中獲取包值(字符串)並將其返回到第一個活動?這裏是我的代碼:Android從其他活動使用包檢索onActivityResult的結果

FirstActivity(回事第二活動):

button1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivityForResult(new Intent(this, 
         SecondActivity.class), REQUEST_CODE_SAMPLE); 
      } 
     }); 

SecondActivity:(返回束值)

button2.setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         Bundle b = new Bundle(); 
         bundle.putString("A", "Aloha"); 
         bundle.putString("B", "Bubbles"); 

      setResult(
        Activity.RESULT_OK, 
        getIntent().putExtras(b)); 
        } 
       }); 
} 

FirstActivity(去檢索捆綁值):

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    switch (requestCode) { 
    case REQUEST_CODE_SAMPLE: 
     if (resultCode == RESULT_OK) { 
       bundle = getIntent().getExtras(); 
       //WHAT TO DO TO GET THE BUNDLE VALUES// 
       String a = //STORE FIRST VALUE OF BUNDLE 
       String b = //STORE SECOND VALUE OF BUNDLE 
     } 

     break; 

    default: 
     break; 
    } 
} 

回答

2

你需要做到以下幾點:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 
switch (requestCode) { 
    case REQUEST_CODE_SAMPLE: 
    if (resultCode == RESULT_OK) { 
      Bundle bundle = data.getExtras(); 
      //WHAT TO DO TO GET THE BUNDLE VALUES// 
      String a = bundle.getString("A"); 
      String b = bundle.getString("B"); 
     } 
    break; 
    } 
} 

,但照顧,你必須使用傳遞給onActivityResultgetIntent

而且意圖在SecondActivity,你需要使用一個新的intent :

button2.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Bundle bundle= new Bundle(); 
        bundle.putString("A", "Aloha"); 
        bundle.putString("B", "Bubbles"); 

        Intent returnIntent = new Intent(); 
        returnIntent.putExtras(bundle); 

        setResult(Activity.RESULT_OK, returnIntent); 
       } 
      }); 
} 
+0

非常感謝您的回答。我會試試這個。 – 2014-09-03 10:58:56

+0

我使用的getIntent是錯誤的geeez。謝謝你,我的問題解決了。 :) – 2014-09-03 11:06:07

相關問題