繁体   English   中英

单击一个按钮即可从一个片段导航到另一个片段

[英]Navigate from one fragment to another fragment on click of a button

这是通过谷歌搜索并读取另一个堆栈溢出答案而实现的代码II。 但任何答案对我都不起作用。

以下代码显示此错误-“找不到ID为0x7f09009e的视图

请帮我实现这个

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);

//////more code here //////

OnClickListener listner = new OnClickListener() {

            @Override
            public void onClick(View v) {
                Fragment fragment=null;
                if(v==rootView.findViewById(R.id.Button)){
                    fragment = new SortListFragment();
                }
                FragmentManager manager =getFragmentManager();
                FragmentTransaction transaction = manager.beginTransaction();
                transaction.replace(R.id.fragment_sort, fragment);
                transaction.commit();


            }
        };

         ImageButton btn = (ImageButton)rootView.findViewById(R.id.button);
         btn.setOnClickListener(listner);

        return rootView;
    }
ButtonOnClickInterface interface;
public void onCreateView(//parameters){
   View view=//inflate the view;
   Button button =(Button)view.findViewById(R.id.buttonId);
   button.setOnClickListener(new View.OnclickListener{
       @Override
       public void onClick(View v){
           try{
              interface.onClick();
           }catch(Throwable e){
              //may be null
           }
       }
   });
}

@Override
public void onAttach(Context c){
   super.onAttach(c);
   try{
      interface=(ButtonOnClickInterface)c;
   }catch(Throwable e){
      //not implemented
   }
}

和你的界面

interface ButtonOnClickInteface{
   void onClick();
}

在您的活动中实现此接口。

在点击列表查看器上方添加以下行:

rootview = inflater.inflate(R.layout.<your layout xml>, container,
                    false);

我认为您忘了提供其中已放置按钮等全部内容的布局文件。

因此,请在“ super.OnCreateView() ”之后的代码中提供以下行

  rootView = inflater.inflate(R.layout.your_layout_file, container, false);

然后检查它是否工作,希望这会工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM