方法不会覆盖其超类的方法。 Android片段

时间:2015-02-01 11:11:35

标签: java android android-fragments override onclicklistener

片段1:

public class fragment1 extends Fragment implements View.OnClickListener {
    ImageButton but, but1, but2;
    ImageView view;
    @Override << this one
    public View OnCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View myView = inflater.inflate(R.layout.fragment1, null);
        but = (ImageButton) myView.findViewById(R.id.imageButton11);
        but.setOnClickListener(this);
        but1 = (ImageButton) myView.findViewById(R.id.imageButton1);
        but1.setOnClickListener(this);
        but2 = (ImageButton) myView.findViewById(R.id.imageButton2);
        but2.setOnClickListener(this);
        return myView;
    }

    @Override
    public void onClick(View v) {
        main xxx = (main)getActivity();
        switch (v.getId()) {
       case R.id.imageButton11:
                xxx.str="but1";
                break;
..
            }}

主:

Fragment frag1 = new fragment1();
    fr1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    fTrans = getFragmentManager().beginTransaction();
                    fTrans.replace(R.id.frameLayout2, frag1);
                    fTrans.addToBackStack(null);
                    fTrans.commit();
                }
            });

方法不会覆盖fragment1中超类的方法(第一次覆盖) 但没有&#34;实现View.OnClickListener&#34;它的工作原理

4 个答案:

答案 0 :(得分:20)

拼写错误。将方法命名为onCreateView,而不是OnCreateView

答案 1 :(得分:0)

我不熟悉android sdk,但我觉得你需要这样的东西

Fragment frag1 = new fragment1(){
         @Override
         public void onClick(View view) {
              fTrans = getFragmentManager().beginTransaction();
              fTrans.replace(R.id.frameLayout2, frag1);
              fTrans.addToBackStack(null);
              fTrans.commit();
         }
 };

答案 2 :(得分:0)

返回您的虚增视图

public View onCreateView(.....) {
...
...

return InputFragmentView;
}

并将OnCreateView更改为onCreateView。 你可以点击ctrl + o来准备它^^

答案 3 :(得分:0)

就我而言,我不是从Fragment扩展它。确保您从Fragment类扩展了片段。

public class fragment1 extends Fragment implements View.OnClickListener {
   @Override
///   public View onCreateView.......
}