【问题标题】:onActivityResult Method call onbutton click [duplicate]onActivityResult 方法调用按钮单击[重复]
【发布时间】:2019-07-13 19:34:38
【问题描述】:

请写下答案 如何在按钮点击时调用片段的onActivityResult

 Button button=view.findViewById(R.id.bbbtttnnn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.putExtra("name","charan");
                startActivityForResult(intent,45);
            }
        });

【问题讨论】:

  • 只是一个旁注:尽可能多地尝试始终为您的 ID 提供有意义/相关的名称。当我不得不回到我两年前编写的代码库时,我学到了很难的方法。它还可以帮助其他可能想要处理您的代码的人。
  • 你能告诉我你想做什么/为什么要做什么吗?也许我们可以通过其他方式提供帮助,因为您的代码似乎不需要像这样。
  • 不知道为什么问题这么多?自己google一下。 stackoverflow.com/questions/10407159/…。您显然不了解 ActivityForResult 的工作原理。所以我建议你尽快开始阅读。
  • @VygintasB 仔细阅读。它与其他问题不同。
  • @PratikButani 答案是一样的。简而言之,您不能自己调用​​ onActivityResult 。它被称为然后您打开的活动返回结果。

标签: android


【解决方案1】:

定义常量

public static final int REQUEST_CODE = 1;

使用意图

Intent intent = new Intent(Activity.this,
                    XYZActivity.class);
            startActivityForResult(intent , REQUEST_CODE);

现在使用 onActivityResult 检索结果

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

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

                String requiredValue = data.getStringExtra("key");
            }
        } catch (Exception ex) {
            Toast.makeText(Activity.this, ex.toString(),
                    Toast.LENGTH_SHORT).show();
        }

    }

在下一个屏幕中使用此代码设置结果

Intent intent = getIntent();
intent.putExtra("key", value);
setResult(RESULT_OK, intent);
finish();

【讨论】:

  • 但我使用了片段
  • 那你面临什么问题?
  • 点击按钮时应用程序崩溃
  • 你能显示错误日志吗
  • @RahulArora ,您给出的答案只会打开他不想打开的活动,
猜你喜欢
  • 2019-12-28
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
相关资源
最近更新 更多