Java 未从适配器调用onActivityResult
每当我完成“ViewEvent”活动时,在“HomeFragment”中调用onActivityResult()时遇到问题。 ViewEvents活动是从适配器启动的。活动开始得很好,但在主片段中不会调用onActivityResult。我怎样才能让它工作 家庭片段Java 未从适配器调用onActivityResult,java,android,Java,Android,每当我完成“ViewEvent”活动时,在“HomeFragment”中调用onActivityResult()时遇到问题。 ViewEvents活动是从适配器启动的。活动开始得很好,但在主片段中不会调用onActivityResult。我怎样才能让它工作 家庭片段 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActiv
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Do stuff
EventListAdapter eventListAdapter = new EventListAdapter(getContext(), 0, events);
eventListView.setAdapter(eventListAdapter);
}
事件列表
private Context mContext;
public EventListAdapter(@NonNull Context context, int resource, @NonNull List<WorkdayEvent> objects) {
super(context, resource, objects);
mContext = context;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
setupImageLoader();
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(R.layout.event_list_layout,parent,false);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putSerializable("EVENT",event);
Intent intent = new Intent(mContext, ViewEvent.class);
intent.putExtra("EVENTBUNDLE",bundle);
Activity activity = (Activity)mContext;
activity.startActivityForResult(intent,DELETE_EVENT);
}
});
return convertView;
}
您使用的是
Activity.startActivityForResult
,在这种情况下,结果不会传播到片段
将片段向下传递到适配器,并使用
fragment.startActivityForResult
在那里调用onActivityResult
。如何将片段传递到适配器?尝试从McContext获取片段,但不起作用。
final Button deleteEvent = findViewById(R.id.buttonViewEventDelete);
deleteEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadEvents();
int index = getEventIndex(event);
if(index > -1) {
workdayEvents.remove(index);
}
saveEvents();
setResult(RESULT_OK);
finish();
}
});