簡體   English   中英

onActivityResult 未從適配器調用

[英]onActivityResult not getting called from adapter

每當我完成“ViewEvent”活動時,在“HomeFragment”中調用 onActivityResult() 時遇到問題。 ViewEvents 活動從適配器啟動。 活動開始得很好,但 onActivityResult 不會在主片段中被調用。 我怎樣才能讓它發揮作用?

首頁片段

    @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;
}

視圖事件

        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();
            }
        });

您正在使用Activity.startActivityForResult在這種情況下結果不會傳播到片段。

將片段傳遞給適配器並使用Fragment.startActivityForResult在那里調用onActivityResult

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM