android - 如何从另一个片段调用一个片段中的方法
问题描述
我正在使用一个容器片段(主),其中包含另外两个片段(比如说 A 和 B),主片段包含一些方法,当用户按下两个片段(A 和 B)中的任何一个中的按钮时需要调用这些方法。
我使用了静态方法(然后通过制作主片段的对象来调用这些方法)并且它运行良好,但这不是最佳实践,并且还会降低移动应用程序的性能。有人告诉我使用接口来调用方法,但我不知道如何使用接口来实现我的任务。我需要调用的主要片段的代码
public void updateEditText(int i) {
switch (i) {
case 1:
bottomSheetBehaviorTeacher.setState(BottomSheetBehavior.STATE_EXPANDED);
break;
case 2:
bottomSheetBehaviorStudent.setState(BottomSheetBehavior.STATE_EXPANDED);
break;
case 3:
bottomSheetBehaviorAdmin.setState(BottomSheetBehavior.STATE_EXPANDED);
break;
}
}
当用户在片段 A 中按下这些按钮时
addTeachers.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//listener.onInputASent(1);
}
});
addStudents.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//listener.onInputASent(2);
}
});
在片段 B
addAdminbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//mainLayoutFragment.BottomSheet_layout_admin();
//listener.onInputASent(3);
}
});
解决方案
推荐阅读
- angular - "ExpressionChangedAfterItHasBeenCheckedError"; 我不明白生命周期钩子中有什么类型的操作,让它被抛出
- google-bigquery - 如何在 BigQuery 中执行滚动求和
- python - 如何定义未缩放模型的部分(带有 ResponseSurface 组件)?
- python - 如何将时间增量转换为分钟?
- facebook-graph-api - composer facebook/graph-sdk 需要 php-http/client-implementation
- javascript - 带有 Typescript 和 react-redux 的有状态组件:“typeof MyClass”类型的参数不可分配给 Component 类型的参数
- c# - MVC 5 和类似于 Laravel Auth 中间件的授权中间件
- python - 使用带有 https 凭证的 GitPython 克隆 AWS CodeCommit git 存储库
- sharepoint - 使用 SharePoint REST API 更新列表项
- php - Zend 框架 3 中的自定义视图策略