在片段页面中调用活动接口方法onDrawerItemSelected(视图,位置)



我需要在片段页面中调用活动接口方法onDrawerItemSelected(view,position)。有可能吗?任何人都可以帮我。这样我就可以在碎片页面中自定义抽屉了。

MainActivity.java:

 public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {
@Override
    public void onDrawerItemSelected(View view, int position) {
        displayView(position);
    }
    private void displayView(int position) {
        Fragment fragment = null;
        String title = getString(R.string.app_name);
        switch (position) {
            case 0:
                fragment = new UserProfileFragment();
                title = getString(R.string.title_discovery);
                break;
            case 1:
                fragment = new SettingsActivity();
                title = getString(R.string.title_messages);
                break;
            case 2:
                fragment = new InboxRequestActivity();
                title = getString(R.string.title_discovery);
                break;
            case 3:
                break;
            default:
                break;
        }
 }

CustomFragment.java:

 public class CustomFragment extends Fragment implements FragmentDrawer.FragmentDrawerListener

  menu_btn_click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                mDrawerLayout.openDrawer(GravityCompat.START);


            }
        });

在点击menu_btn_click时,我需要在fragment页面中调用活动界面方法onDrawerItemSelected(view,position)。

您需要覆盖片段中的onDrawerItemSelected(View view, int position)方法,并在活动中调用它:

@Override
public void onDrawerItemSelected(View view, int position) {
    listener.onDrawerItemSelected(view, position);
}

因此,您将需要将活动作为FragmentDrawer.FragmentDrawerListener传递给片段(例如,通过适当的setter)。

setListener(FragmentDrawer.FragmentDrawerListener listener){
    this.listener = listener;
}

相关内容

  • 没有找到相关文章

最新更新