我需要在片段页面中调用活动接口方法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;
}