我有一个活动,我们称它为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并且不活动(可见),因为适配器在其中运行。
因此,我不知道为什么会弹出此错误,也不知道该怎么办。你们中的任何人可能知道为什么或曾经经历过吗?
答案 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);