setResult(int,intent)在Android中不起作用

时间:2015-06-02 12:04:27

标签: android android-activity

我现在尝试了很多解决方案。但是,我无法让编译器在我的活动中批准setResult(int,intent)。我已经使用startActivityForResult启动了活动。

你能看到问题吗?

我的代码如下所示:

networkServiceMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //TODO: Implement the methods that should be executed on validation results

            PrinterData printerData = intent.getParcelableExtra(NetworkService.VALIDATE_PRINTER_RESULT);

            if(printerData != null)
            {
                Intent data = new Intent();
                data.putExtra(VALIDATE_PRINTER_RESULT, printerData);

                setResult(RESULT_OK, data);
                finish();

            }

            else
            {

            }
        }
    };

Android Studio会出现此错误: enter image description here

2 个答案:

答案 0 :(得分:10)

BroadcastReceiversetResult方法,它有三个参数,而不是两个,您可能希望使用类setResult中的Activity。参考它:

ActivityName.this.setResult(RESULT_OK, data);

如果在BroadcastReceiver

中宣布Activity

答案 1 :(得分:1)

RESULT_OK是Activity类的常量。

在Activity类中,您可以直接访问,但在其他类中,您还需要编写类名(Activity)。

使用Activity.RESULT_OK代替RESULT_OK