2016-05-23 193 views
0

这是通过使用Google搜索和阅读另一个堆栈溢出答案实现的代码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; 
    } 
+0

没有尝试处理onClick事件和使用接口在活动类中插入新片段? –

+0

请提供布局文件。它似乎是id sortButton或按钮不存在 – sonique

+0

首先充气布局。并使用膨胀视图来查找布局视图(如imagebutton) – Sackurise

回答

0

添加此线以上上点击听者:

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

我在我的代码中有这段代码 – tenten

+0

删除此行super.onCreateView(inflater,container,savedInstanceState);并检查 – AbhayBohra

1
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(); 
} 

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

+0

这是什么'myActivity' – tenten

+0

对不起我的坏。更新了安装程序。 –

+0

感谢帮助斯里兰卡同胞。但代码没有做任何事情:( – tenten

0

我想你忘了提供布局文件,其中你已经把按钮和所有。

所以,请在下方提供您的代码行“super.OnCreateView()

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

然后检查其是否工作后,希望这将工作

+0

我有这条线 – tenten

+0

确保布局传递的是正确的,并且按钮在布局中只在活动中没有。还要检查在声明中你写了R.id.button(意思是小按钮),并在点击列表器中比较R.id.Button(Capital“B” ),所以请检查它。 – Vickyexpert

+0

如果是这种情况,它会产生一个空指针异常。 –

相关问题