Java 单独片段中的按钮单击侦听器不工作?

Java 单独片段中的按钮单击侦听器不工作?,java,android,android-studio,android-fragments,Java,Android,Android Studio,Android Fragments,我试图在我的片段中添加一个按钮点击器侦听器,但它似乎不起作用 创建我的主片段是为了显示另外两个片段的选项卡。现在,这个选项卡片段在工具栏中有一个按钮来过滤内容。这个过滤器按钮的侦听器和方法在我的另外两个片段中。问题是,当点击按钮时,它什么也不做 选项卡片段: public class LibraryFragment extends Fragment implements ViewPager.OnPageChangeListener { private View view; priv

我试图在我的片段中添加一个按钮点击器侦听器,但它似乎不起作用

创建我的主片段是为了显示另外两个片段的选项卡。现在,这个选项卡片段在工具栏中有一个按钮来过滤内容。这个过滤器按钮的侦听器和方法在我的另外两个片段中。问题是,当点击按钮时,它什么也不做

选项卡片段:

public class LibraryFragment extends Fragment implements ViewPager.OnPageChangeListener {

   private View view;
   private SectionsPagerAdapterLib PageAdapter;
   public ViewPager viewPager;
   private ImageView filterBtn;

   private LibraryFragment.OnItemClickListener mOnItemClickListener;

   public interface OnItemClickListener {
       void onItemClick(View view);
   }

   public void setOnItemClickListener(LibraryFragment.OnItemClickListener mItemClickListener) {
       this.mOnItemClickListener = mItemClickListener;

   }

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) {
       this.view =  inflater.inflate(R.layout.fragment_library_tabs, container, false);

       TabLayout tabLayout = view.findViewById(R.id.fav_list_tabs);
       filterBtn = view.findViewById(R.id.filterBtn);
       viewPager = view.findViewById(R.id.fav_list_tabs_container);

       filterBtn.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (mOnItemClickListener != null) {
                   mOnItemClickListener.onItemClick(v);
               }
           }
       });

       PageAdapter = new SectionsPagerAdapterLib(getFragmentManager(), getActivity());
       viewPager.setAdapter(PageAdapter);
       viewPager.setOffscreenPageLimit(2);
       viewPager.addOnPageChangeListener(this);
       tabLayout.setupWithViewPager(viewPager);

       getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
       getActivity().getWindow().setStatusBarColor(getActivity().getResources().getColor(R.color.mWindowColorHeaders));

       return view;
   }

   @Override
   public void onCreate(@Nullable Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

   }

   @Override
   public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

   }

   @Override
   public void onPageSelected(int position) {

       Fragment fragment = PageAdapter.getFragment(position);
       if (fragment != null) {
           fragment.onResume();
       }

   }

   @Override
   public void onPageScrollStateChanged(int state) {

   }

}
单击按钮时应该工作的片段:

public class ContentFragment extends Fragment implements LibraryFragment.OnItemClickListener {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_data, null);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        // find my views, etc
    }

    @Override
    public void onItemClick(View view) {

        //populate filter list
        if (Constants.genreList != null){
            list.add(0, "All Filters");
            for (int i = 0; i < Constants.list.size(); i++) {
                list.add((i + 1), Constants.list.get(i).getName());
            }
        }
        final String[] listArray = new String[list.size()];
        for (int i = 0; i < list.size(); i++) {
            listArray[i] = list.get(i);
        }

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Select Filter");
        builder.setItems(genreArray, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                //    ((TextView) v).setText(genreArray[i]);
                selected_list.setText(listArray[i]);
                if (i == 0) {
                    getData(1);
                }
                dialogInterface.dismiss();
            }
        });
        builder.show();
    }
}
公共类ContentFragment扩展片段实现LibraryFragment.OnItemClickListener{
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
返回充气器。充气(R.layout.fragment_数据,空);
}
@凌驾
已创建公用void onview(@NonNull视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
//找到我的观点等
}
@凌驾
public void onItemClick(视图){
//填充筛选器列表
if(Constants.genreList!=null){
添加(0,“所有过滤器”);
对于(int i=0;i
任何帮助都将不胜感激。

请在片段中尝试

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {                    //change fragment_video to where your button is located//
        final View v2 = inflater.inflate(R.layout.fragment_video,container,false);
        //start stream Button
        Button startButton = (Button)v2.findViewById(R.id.buttonStart);
        startButton.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //what your button is going to do
            }
        });
        return v2;
    }

由于片段是由活动处理的,所以片段仍然彼此不依赖,可以在一个或两个窗格模式下使用。活动应该处理这两个片段的侦听器。

演示如何切换/显示
片段
s,特别是当/在您调用
setonimclicklesstener
@snachmsm时。这就是问题所在,我不知道在哪里调用我的setonimclicklesstener。我是android开发和在线学习的新手,所以这有点困难。LibraryFragment从具有底部导航的MainActivity类加载。