听片段B中片段A中的按钮

问题描述 投票:0回答:1

所以我想从Test2内部收听fragment_blank_fragment2中的fragment_terminal按钮。此代码对我不起作用。这样可以做到吗?

View view = inflater.inflate(R.layout.fragment_terminal, container, false);
View view2 = inflater.inflate(R.layout.fragment_blank_fragment2, container, false);
View sendBtn2 = view2.findViewById(R.id.test2);
sendBtn2.setOnClickListener(v -> send("Test2"));
View sendBtn = view.findViewById(R.id.test);
sendBtn.setOnClickListener(v -> send("Test"));
javascript android fragment onclicklistener
1个回答
0
投票
  • 首先,在fragment_terminal中,您需要创建一个使用View.OnClickListener对象的setter方法,然后可以使用该对象将其设置为clickListener test2按钮,如下所示
public void setTest2ClickListener(@NonNull View.OnClickListener clickListener) {
        test2Button.setOnClickListener(clickListener);
}
  • 在fragment_blank_fragment2内部创建一个getter以返回用于处理testButton clickListener的View.OnClickListener,如下所示:
@NonNull
    public View.OnClickListener getTest2ClickListener() {
        return new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //TODO implement here
            }
        };
    }
  • 然后在显示这些片段的活动中,使用getSupportFragmentManager().findFragmentByTag("tag")查找两个片段,然后在fragment_terminal中调用setter,并在fragment_blank_fragment2中使用getter的返回值来设置侦听器。这是一种实现方式。
© www.soinside.com 2019 - 2024. All rights reserved.