从儿童活动传递数据到主要活动

问题描述:

我有两个活动主要活动和活动二, 基本上我试图从活动二传递文本到主要活动,当我点击主要活动 中的按钮,但它始终检索空
任何帮助,为什么它不发回消息从儿童活动传递数据到主要活动

是主要活动代码:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button two = (Button) findViewById(R.id.button); 
     Recieve =(TextView) findViewById(R.id.textView2); 
     two.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       sendMessage(); 
      } 

     }); 
    } 

    public void sendMessage() { 
     Intent intent = new Intent(this, Activity2.class); 

     startActivityForResult(intent, REQUEST_CODE); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 


     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { 

      String requiredValue = data.getStringExtra("Key"); 
      Recieve.setText(requiredValue); 

     } 
    } 

那就是活性2代码:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_2); 
     send(); 

    } 
    public void send(){ 
     String message ="hello"; 
     Intent intent = new Intent(); 
     intent.putExtra("key", message); 
     setResult(RESULT_OK, intent); 
     finish(); 
    } 
} 

send(),您使用"key"小写k

onActivityResult(),您使用"Key"与资本K

这些不匹配,这就是为什么你没有得到你的回应。

也许你应该在一个地方定义你的密钥,作为一个常量(final static),并在两个活动中使用相同的常量定义。

+0

用作键的静态最终字符串必须是公共的才能用于多个类(活动)。我还要补充说,最好将它设置在接收数据的活动中(MainActivity在这里),所以其他活动可以一致地使用它,而不必加载第三方活动来提供响应。 – Feuby

+0

@Feuby:“必须公开才能用于多个类” - 只有当它们是不同的Java包时。否则,私人包就足够了。 – CommonsWare

+0

是的,它确实为我工作,谢谢@CommonsWare –