[英]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.