这是通过谷歌搜索和阅读另一个堆栈溢出答案实现的代码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 :(得分: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();
}
在您的活动中实施此界面。
答案 1 :(得分:0)
在点击列表器上添加以上行:
rootview = inflater.inflate(R.layout.<your layout xml>, container,
false);
答案 2 :(得分:0)
我认为你忘了提供布局文件,你已经把按钮和所有。
请在“ super.OnCreateView()”之后在代码中提供以下行
rootView = inflater.inflate(R.layout.your_layout_file, container, false);
然后检查它是否正常工作,希望这会起作用