我无法在Fragment中更改Activity中的对象

时间:2014-11-21 11:56:02

标签: android android-fragments

我有mDrawerToggle = new ActionBarDrawerToggle

 mDrawerToggle = new ActionBarDrawerToggle(
            this,
            mDrawerLayout,
            R.drawable.ic_drawer,
            R.string.drawer_open,
            R.string.drawer_close
    ) {
        public void onDrawerClosed(View view) {
            getSupportActionBar().setTitle(mTitle);
            supportInvalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
        }

        public void onDrawerOpened(View drawerView) {
            getSupportActionBar().setTitle("Меню");
            supportInvalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
        }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);

创建活动时,我在我需要安装mDrawerToggle.setDrawerIndicatorEnabled(false);的片段中执行的一些操作后安装mDrawerToggle.setDrawerIndicatorEnabled(true);。但是我不能从片段中引用它。

public class AuthDialog extends Fragment implements View.OnClickListener {
...
        @Override
        protected void onPostExecute(String s) {
           if (response){
               //then I need to set mDrawerToggle.setDrawerIndicatorEnabled(true);
            }else{
               ...
            }
        }
}

2 个答案:

答案 0 :(得分:2)

像ridsatrio说的那样。然后从Fragment

调用这样的方法
if(getActivity() != null){
    ((YourActivityName)getActivity()).enableDrawerToggle();
}

答案 1 :(得分:0)

Activity中设置公开方法以启用DrawerToggle。看起来像这样的东西:

public void enableDrawerToggle() {
    mDrawerToggle.setDrawerIndicatorEnabled(true);
}

..然后从您的Fragment调用它。