2014-09-03 98 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