从适配器传递一个值到Activity是否可行?

3

我有Activity1Activity1适配器Activity2

我无法在适配器和活动之间传递值。当按下返回按钮时,我期望从第二个活动(Activity2)传递一个值给Activity1。目前它给了我null

这是我的代码片段。

Activity1适配器

 holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Activity origin = (Activity) context;
                Intent intent = new Intent(context, PostActivity.class);
                intent.putExtra("searchText", staggeredCustomCard.getSearchText());
                origin.startActivityForResult(intent, 1);
            }
        });

活动2

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        Intent mIntent = new Intent();
        mIntent.getStringExtra("searchText");
        setResult(1, mIntent);
    }

我期望这个searchText会传递到Activity1。请问有人可以指导我如何实现吗?
1个回答

4
您正在从全新的 Intent 中获取 getStringExtra("searchText");,这就是为什么它返回 null 的原因。您需要像这样从 getIntent() 中获取搜索文本:
@Override
    public void onBackPressed() {
        super.onBackPressed();
        Intent mIntent = new Intent();
        String search = getIntent().getStringExtra("searchText");
        mIntent.putExtra("searchText", search);
        setResult(1, mIntent);
    }

onBackPressed()甚至没有被调用。我放置了Log语句,但在LogCat上似乎没有显示任何内容。 - coderpc
感谢您的回答。我不得不重写这个方法 onSupportNavigateUp(),以使 onBackPressed() 方法起作用。 - coderpc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接