要访问与片段连接的活动,可以使用以下步骤:
public interface OnButtonClickListener {
void onButtonClicked();
}
private OnButtonClickListener buttonClickListener;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (buttonClickListener != null) {
buttonClickListener.onButtonClicked();
}
}
});
public class MainActivity extends AppCompatActivity implements OnButtonClickListener {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ...
// 在宿主活动中将接口实例传递给片段
MyFragment fragment = new MyFragment();
fragment.setButtonClickListener(this);
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, fragment)
.commit();
}
@Override
public void onButtonClicked() {
// 在宿主活动中处理按钮点击事件
// 访问宿主活动的方法或执行其他操作
}
}
public void setButtonClickListener(OnButtonClickListener listener) {
this.buttonClickListener = listener;
}
这样,当在片段中按下按钮时,它会调用宿主活动中的 onButtonClicked()
方法,从而访问宿主活动的方法或执行其他操作。
希望这可以帮助到你!