2017-01-18 15 views
-1

myOnCreateOptionsMenuでこのエラーが発生したとき、私はUserListingアクティビティをフラグメントに変換していました。アクティビティをフラグメントに変換するとonCreateOptionsMenuエラーが発生する

enter image description here

これは私のフラグメントの活動です。

この、何よりは、フラグメントに転化するように変更する必要がありますを解決するために変更する必要がありますどのような
public class UserListingActivity extends Fragment implements LogoutContract.View { 
    private Toolbar mToolbar; 
    private TabLayout mTabLayoutUserListing; 
    private ViewPager mViewPagerUserListing; 

    private LogoutPresenter mLogoutPresenter; 

    public static void startActivity(Context context) { 
     Intent intent = new Intent(context, UserListingActivity.class); 
     context.startActivity(intent); 
    } 

    public static void startActivity(Context context, int flags) { 
     Intent intent = new Intent(context, UserListingActivity.class); 
     intent.setFlags(flags); 
     context.startActivity(intent); 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

     bindViews(); 
     init(); 
     setHasOptionsMenu(true); 

     return super.onCreateView(inflater, container, savedInstanceState); 
    } 

    // @Override 
// protected void onCreate(Bundle savedInstanceState) { 
//  super.onCreate(savedInstanceState); 
//  setContentView(R.layout.activity_user_listing); 
//  bindViews(); 
//  init(); 
// } 

    private void bindViews() { 
     mToolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); 
     mTabLayoutUserListing = (TabLayout) getActivity().findViewById(R.id.tab_layout_user_listing); 
     mViewPagerUserListing = (ViewPager) getActivity().findViewById(R.id.view_pager_user_listing); 
    } 

    private void init() { 
     // set the toolbar 
     setSupportActionBar(mToolbar); 

     // set the view pager adapter 
     UserListingPagerAdapter userListingPagerAdapter = new UserListingPagerAdapter(getFragmentManager()); 
     mViewPagerUserListing.setAdapter(userListingPagerAdapter); 

     // attach tab layout with view pager 
     mTabLayoutUserListing.setupWithViewPager(mViewPagerUserListing); 

     mLogoutPresenter = new LogoutPresenter(this); 
    } 

// @Override 
// public boolean onCreateOptionsMenu(Menu menu) { 
//  getActivity().getMenuInflater().inflate(R.menu.menu_user_listing, menu); 
//  return super.onCreateOptionsMenu(menu); 
// } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
       getActivity().getMenuInflater().inflate(R.menu.menu_user_listing, menu); 
     return super.onCreateOptionsMenu(menu, inflater); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.action_logout: 
       logout(); 
       break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    private void logout() { 
     new AlertDialog.Builder(this) 
       .setTitle(R.string.logout) 
       .setMessage(R.string.are_you_sure) 
       .setPositiveButton(R.string.logout, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
         mLogoutPresenter.logout(); 
        } 
       }) 
       .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       }) 
       .show(); 
    } 

    @Override 
    public void onLogoutSuccess(String message) { 
     Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 
     LoginActivity.startIntent(this, 
       Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
    } 

    @Override 
    public void onLogoutFailure(String message) { 
     Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     startActivity(new Intent(this, MainActivity.class)); 
    } 
} 

。私は初心者ですので、詳細な助けをいただければ幸いです。 おかげ

+0

ようでなければなりません「無効」 –

答えて

0

問題は、メソッドの戻り値の型であるが、それvoid作るとエラーがsuper-type戻りvoidと消えてしまいます。フラグメントで

0

メソッドのシグネチャは、単に `フラグメントのメソッドoverride`、あなたはそれが必要、FYI、違いを見ることができます

ます。public void onCreateOptionsMenu(メニューメニュー、MenuInflaterのインフレータ)以下

関連する問題