首页 > 解决方案 > 如何在跑步活动中获得额外内容?

问题描述

我想发送用户从当前活动输入的文本(就像一个对话框但不是一个)。Activity 1 在后台运行。到目前为止,我已经尝试过:

第二个活动代码:

 submitButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();

            if(companyNameEditText.getText().toString()!=null) {
                intent.putExtra("companyName", companyNameEditText.getText().toString());
                 nameChanged=true;
                finish();
            }
            else{
                Toast.makeText(ChangeNameActivity.this,"Please enter a value",Toast.LENGTH_SHORT).show();
            }
        }
    });

第二个活动的 onDestroy:

 @Override
protected void onDestroy() {
    super.onDestroy();
    if(nameChanged)
    {
        activityFinishedWithChanges= true;
    }
}

简历上的第一个活动:

 @Override
protected void onResume() {
    super.onResume();
    if(ChangeNameActivity.activityFinishedWithChanges) {
        companyNameText = findViewById(R.id.companyNameText);
        if (getIntent().hasExtra("companyName")) {
            String companyName = getIntent().getStringExtra("companyName");
            if (companyName != null) {
                if (!companyName.equals("")) {
                    companyNameText.setText(companyName);
                    AppUtils.setNameSharedPreference(BrandSettingsActivity.this, AppConstants.organizationName, getIntent().getStringExtra("companyName"));
                }
            }
        }
    }
}

在我的情况下,我得到一个空值。

标签: javaandroidandroid-intentandroid-activityonresume

解决方案


如果我正确理解您的问题,您希望将数据从(第二个活动)发送到您之前打开的(第一个活动)

因此,从您的 FirstActivity 调用 SecondActivity 使用 startActivityForResult() 方法

例如:

int ACTIVITY_CODE= 1
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, ACTIVITY_CODE);

在您的 SecondActivity 中设置您想要返回给 FirstActivity 的数据。

例如:在 SecondActivity 如果你想发回数据:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

现在在您的 FirstActivity 类中为 onActivityResult() 方法编写以下代码。

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

if (requestCode == ACTIVITY_CODE) {
    if(resultCode == Activity.RESULT_OK){
        String result=data.getStringExtra("result");
    }
    if (resultCode == Activity.RESULT_CANCELED) {
        //Write your code if there's no result
    }
  }
}

希望它能解决你的问题:)


推荐阅读