【问题标题】:call the activity interface method onDrawerItemSelected(view,position) in fragment page在fragment页面调用activity接口方法onDrawerItemSelected(view,position)
【发布时间】:2016-04-07 10:36:10
【问题描述】:

我需要在片段页面中调用活动接口方法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页面调用activity接口方法onDrawerItemSelected(view,position)。

【问题讨论】:

    标签: java android android-fragments interface


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-11-27
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      相关资源
      最近更新 更多