ActivityNotFoundException:未找到任何活动来处理Intent {(具有其他功能)}

时间:2019-07-22 20:26:33

标签: java android android-activity

我有一个活动,我们称它为MainActivity,其中有一个SomeAdapter。 在适配器的代码中,我有

@Override
public void onBindViewHolder(@NonNull OptionViewHolder holder, final int position) {
    final Option o = values.get(position);
    holder.textView.setText(o.getOption());
    holder.foreGround.setBackgroundColor(o.getOptionLayout().getBackGroundColor());

    holder.editOptionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("option",o);
            context.startActivityForResult(intent,1);
        }
    });
}

实际单击editOptionButton时,我得到以下堆栈跟踪

  

进程:com.company.app,PID:20916       android.content.ActivityNotFoundException:未找到用于处理Intent {(有其他功能)}的活动           在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2007)           在android.app.Instrumentation.execStartActivity(Instrumentation.java:1673)           在android.app.Activity.startActivityForResult(Activity.java:4586)           在androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)           在android.app.Activity.startActivityForResult(Activity.java:4544)           在androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)           在com.company.app.adapters.OptionsAdapter $ 1.onClick(OptionsAdapter.java:86)

调用startActivityForResult的上下文是MainActivity,并且在调用时不为null并且不活动(可见),因为适配器在其中运行。

因此,我不知道为什么会弹出此错误,也不知道该怎么办。你们中的任何人可能知道为什么或曾经经历过吗?

3 个答案:

答案 0 :(得分:3)

您必须包括这样的“活动”名称

 Intent intent = new Intent(context, SecondActivity.class);
 intent.putExtra("option",o);
 context.startActivityForResult(intent,1);

答案 1 :(得分:0)

第一

您以错误的方式初始化了意图,您需要按如下所示对其进行初始化:

Intent intent = new Intent(context, SecondActivity.class);

第二

如果结果没有返回到MainActivity,则需要在启动第二个活动之前将上下文强制转换为活动:

((Activity) context).startActivityForResult(intent,1);

答案 2 :(得分:0)

这意味着意图不知道去哪里。因此,请提供您想去的上下文和活动名称。

 Intent intent = new Intent(getActivity(), SecondActivity.class);
 intent.putExtra("Key",value);
 startActvity(intent);