フラグメント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();
}
});
methodは、fragment1のスーパークラスからのメソッドをオーバーライドしません(最初のオーバーライド)が、 "implements View.OnClickListener"なしでは機能します
スペルの間違い。メソッドにonCreateView
ではなくOnCreateView
と名前を付けます。
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();
}
};
膨張したビューを返す
public View onCreateView(.....) {
...
...
return InputFragmentView;
}
onCreateViewをonCreateViewに変更します。 Ctrl + Oをタップして準備できます^^
私の場合、フラグメントから拡張していませんでした。必ずフラグメントをFragment
クラスから拡張してください。
public class fragment1 extends Fragment implements View.OnClickListener {
@Override
/// public View onCreateView.......
}