android - 如何将点击事件从 fragment 传递到容器 Activity ?

标签 android android-studio android-fragments android-activity android-fragmentactivity

我正在实现一个抽屉导航 Activity ,其中我在抽屉导航中有一个 fragment (由回收器 View 组成)以动态地将项目添加到抽屉导航。

我已经成功地实现了这个概念,但是我面临一个小问题,即当我点击 fragment 中的任何项目时,抽屉导航没有关闭。这是因为我无法从 fragment 访问 DrawerLayout。

那么我如何将点击监听器从我的 fragment 传递到 Activity 以关闭抽屉布局。

谢谢。

最佳答案

这是一个简单的解决方案。 创建接口(interface)

public interface ClickInterface {
    public void buttonClicked();
}

然后在你的activity中,实现这个接口(interface)

public class MainActivity extends Activity implements ClickInterface{

   @override
   public void buttonClicked() {
      //do your code here
   }
onCreate() {
       fragment.setInterface(this);
    }

现在从 fragment 类调用这个方法buttonclicked

public class ChildFragment extends Fragment {
   ClickInterface interface;

   
   //call this method from activity when activity loads the fragment inside it
   public void setInterface(ClickInterface interface) {
      this.interface = interface;
   }

   public void onClick(View v) {
      interface.buttonClicked();
   }
}

关于android - 如何将点击事件从 fragment 传递到容器 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44573104/

相关文章:

android - Firebase 和检索元素

java - Android 应用程序在重新打开和替换 fragment 时崩溃

android - fragment 中的主题

android - 如何在android-studio中制作项目快照

android - 为什么在隐藏的 fragment 中调用 onResume()?

android - 通过某种文件类型的默认文件打开器制作我的应用程序

android - 丢失了 keystore 的密码

android - 关于安卓 :displayOptions

android - 无法解析 com.android.tools.build :gradle:0. 5.+

android - 单击列表项而不是启动另一个 Activity 后应用程序不断崩溃