在Android中,可以通过接口来实现在不同的片段中调用相同的方法。
首先,创建一个接口来定义这个方法。例如,我们创建一个名为OnButtonClickListener
的接口:
public interface OnButtonClickListener {
void onButtonClick();
}
然后,在每个片段中实现这个接口,并在需要调用相同方法的地方调用该方法。例如,在片段A中:
public class FragmentA extends Fragment implements OnButtonClickListener {
// ...
@Override
public void onButtonClick() {
// 在这里实现需要的逻辑
}
}
在片段B中:
public class FragmentB extends Fragment implements OnButtonClickListener {
// ...
@Override
public void onButtonClick() {
// 在这里实现需要的逻辑
}
}
接下来,在宿主Activity中,实例化这两个片段,并将它们传递给它们的父Activity:
public class MainActivity extends AppCompatActivity {
private FragmentA fragmentA;
private FragmentB fragmentB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentA = new FragmentA();
fragmentB = new FragmentB();
// 传递接口实例给片段
fragmentA.setOnButtonClickListener(this);
fragmentB.setOnButtonClickListener(this);
// 将片段添加到Activity中
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, fragmentA)
.add(R.id.fragment_container, fragmentB)
.commit();
}
// 实现OnButtonClickListener接口的方法
@Override
public void onButtonClick() {
// 在这里实现需要的逻辑
}
}
这样,当在任何一个片段中调用onButtonClick
方法时,都会触发宿主Activity中的onButtonClick
方法。