Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将数据从子活动传递到主活动_Android - Fatal编程技术网

Android 将数据从子活动传递到主活动

Android 将数据从子活动传递到主活动,android,Android,我有两个活动主要活动和活动二, 基本上,当我单击主活动中的按钮时,我试图将文本从活动2传递到主活动 但它总是检索空值 有没有人能帮我解释为什么它不能发回信息 这是主要的活动代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button

我有两个活动主要活动和活动二, 基本上,当我单击主活动中的按钮时,我试图将文本从活动2传递到主活动 但它总是检索空值
有没有人能帮我解释为什么它不能发回信息

这是主要的活动代码:

 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);

        }
    }
这就是Activity2代码:

 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()

onActivityResult()
中,使用带有大写字母
K
“Key”

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


也许您应该在一个位置将密钥定义为常量(
final static
),并在两个活动中使用相同的常量定义。

用作密钥的静态final字符串必须是公共的,才能用于多个类(活动)。我还要补充的是,最好在接收数据的活动(此处为MainActivity)中设置它,这样其他活动就可以一致地使用它,而不必加载第三方活动来给出响应。@Feuby:“必须是公共的,才能用于多个类”——仅当它们是不同的Java包时。否则,包私有就足够了。