微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在跑步活动中获得额外的内容?

如何解决如何在跑步活动中获得额外的内容?

我想发送用户从当前活动(LIKE A DIALOG BUT ONE)输入的文本。活动 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"));
                }
            }
        }
    }
}

就我而言,我得到了一个空值。

解决方法

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

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

例如:

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
    }
  }
}

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

,

您当前的方法不起作用,因为您创建的用于检索公司名称的 Intent 未以任何方式使用。

您应该使用 ActivityClass 的 ActivityResult 功能。基本的概念是这样工作的:

首先,您开始一个 Activity,请求返回带有 Context.startActivitForResult(Intent,requestCode) 的结果。新活动开始并有机会做事。当新 Activity 检索到结果时,它会将其结果设置为 Context.setResult() 并在之后自行完成。 当新的 Activity 完成时,函数 Activity.onActivityResult(requestCode,data) 被调用,使用相同的 requestCode,在 Context.setResult() 中定义数据和 resultCode。

官方文档推荐使用更高级的api:https://developer.android.com/training/basics/intents/result

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?