gpt4 book ai didi

java - 从 Android 中的回收器适配器调用 Activity 方法的正确方法?

转载 作者:太空狗 更新时间:2023-10-29 13:14:55 24 4
gpt4 key购买 nike

我需要从 recycler 适配器的 onBindViewHolder 调用一个 Intent,在 ViewHolder 中的一个 View 发生点击事件时.我无法直接这样做..

    public void onBindViewHolder(MyAdapter.MyViewHolder viewHolder, int i) {
viewHolder.button.setonClickListener(new View.onClickListener(
@Override
onClick(View v) {
Intent i=new Intent();
i.setAction("Intent.ACTION_CALL");
i.setData(Uri.parse("tel:1234567890"));
startActivity(i);
}
));
}

这没有用。它一直在抛出错误。然后,我使用相同的代码在 Activity 中创建了一个公共(public)方法。在 Adapter 构造函数中传递 Activity 上下文。然后从按钮点击事件调用方法如下。

((MyActivity)context).makePhoneCall("1234567890");

这成功了。但我觉得应该有更好的方法来做到这一点。由于我主要来自 C 背景,所以我不确定。所以我的问题是,根据 Java 编程约定,是否有更好或更合适的方法来执行此操作。

最佳答案

如果你需要通过 Intent 调用另一个 Activity ,你可以使用任何 View 的 Context:

v.getContext().startActivity(i);

我认为这是一个正确的方法。

关于java - 从 Android 中的回收器适配器调用 Activity 方法的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35979869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com