内部に 2 つのボタンがあるフラグメントがあります。SherlockFragment クラス内で findViewById がメソッドとして認識されないため、xml ボタンを Java ボタンにアタッチできません。
SherlockFragment を SherlockFragmentActivity に変更しましたが、この方法では、OnCreateView メソッドは使用するのに適していません。代わりにどのメソッドを使用すればよいかわかりません。
バリエーション 1: findViewById がメソッドとして認識されない
public class MyProfileActionButtonsFragment extends SherlockFragment {
private Button bMyProfileEditProfile;
private Button bMyProfileSettings;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.my_profile_action_buttons_fragment, container, false);
bMyProfileEditProfile = (Button) findViewById(R.id.bMyProfileEditProfile);
bMyProfileSettings = (Button) findViewById(R.id.bMyProfileSettings);
bMyProfileEditProfile.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent editUserProfile = new Intent (getActivity(), UserProfileEdit.class);
startActivity(editUserProfile);
}
});
bMyProfileSettings.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent settings = new Intent (getActivity(), Settings.class);
startActivity(settings);
}
});
}
バリアント 2: MyProfileActionButtonsFragment 型のメソッド onCreateView(LayoutInflater, ViewGroup, Bundle) は、スーパータイプ メソッドをオーバーライドまたは実装する必要があります
public class MyProfileActionButtonsFragment extends SherlockFragmentActivity {
private Button bMyProfileEditProfile;
private Button bMyProfileSettings;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.my_profile_action_buttons_fragment, container, false);
bMyProfileEditProfile = (Button) findViewById(R.id.bMyProfileEditProfile);
bMyProfileSettings = (Button) findViewById(R.id.bMyProfileSettings);