Android 如何关闭导航抽屉

Android 如何关闭导航抽屉,android,navigation-drawer,Android,Navigation Drawer,*我正在开发一个应用程序,其中我使用了旧的导航抽屉模式。我的问题是,当我按下“后退”按钮时,导航抽屉将出现,而不是以前的活动。我认为我没有关闭导航抽屉,我真的不知道如何关闭导航抽屉。所以,请帮我摆脱这一切。谢谢 public class ReportProblem extends Activity { WebView mWebView; SimpleSideDrawer rightSlider; LinearLayout ll_menu, ll_start_sto

*我正在开发一个应用程序,其中我使用了旧的导航抽屉模式。我的问题是,当我按下“后退”按钮时,导航抽屉将出现,而不是以前的活动。我认为我没有关闭导航抽屉,我真的不知道如何关闭导航抽屉。所以,请帮我摆脱这一切。谢谢

         public class ReportProblem extends Activity {

    WebView mWebView;

 SimpleSideDrawer rightSlider;
LinearLayout ll_menu, ll_start_stop;
Context mContext = this;

private RelativeLayout rl_main;

private LoaderProgress loader;
Utillity utillity;

 private ImageView iv_browser;

 private CustomText tv_open_in_browser;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report_problem);

utillity =  new Utillity(mContext);

ll_menu = (LinearLayout) findViewById(R.id.ll_menu);

rightSlider = new SimpleSideDrawer(this);

rightSlider.setLeftBehindContentView(R.layout.menu_drawer);

rl_main = (RelativeLayout) findViewById(R.id.rl_main);

  menuClick();
  ll_menu.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        rightSlider.toggleLeftDrawer();

    }
});

rl_main.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }
});

loader = new LoaderProgress(mContext);

mWebView = (WebView) findViewById(R.id.web_activity_summery);
mWebView.getSettings().setJavaScriptEnabled(true);


iv_browser=(ImageView)findViewById(R.id.iv_browser);

tv_open_in_browser=(CustomText)findViewById(R.id.tv_open_in_browser);

iv_browser.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(v.getTag().toString().equals("0"))
        {
            v.setTag("1");
            tv_open_in_browser.setVisibility(View.VISIBLE);
        }
        else
        {
            v.setTag("0");
            tv_open_in_browser.setVisibility(View.GONE);
        }
    }
});


tv_open_in_browser.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        String base64 = Base64.encodeToString(ParseUser.getCurrentUser()
                .getObjectId().toString().getBytes(), Base64.DEFAULT);

            Intent browserIntent = new Intent(Intent.ACTION_VIEW);
                browserIntent.setData(Uri.parse("http://.com/app/feedback/index.html?id="+URLEncoder.encode(base64)));
            startActivity(browserIntent);
            v.setTag("0");
            tv_open_in_browser.setVisibility(View.GONE);
    }
});


mWebView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        if(iv_browser.getTag().toString().equals("1"))
        {
            iv_browser.setTag("0");

            tv_open_in_browser.setVisibility(View.GONE);
        }

    }
});







if (utillity.isNetworkAvailable()) {

    String base64 = Base64.encodeToString(ParseUser.getCurrentUser()
            .getObjectId().toString().getBytes(), Base64.DEFAULT);
    mWebView.loadUrl("http://com/app/feedback/index.html?   id="+URLEncoder.encode(base64));

} else {

    showAlertDialog("Please make sure that you have an active Internet connection");
}

new GpsSharedPrefrence(mContext)
        .setActivityState(GpsSharedPrefrence.ActivityResume);

  }



  @Override
  protected void onResume() {
   // TODO Auto-generated method stub

   new GpsSharedPrefrence(mContext)
        .setActivityState(GpsSharedPrefrence.ActivityResume);

      super.onResume();
}

  @Override
 protected void onPause() {
new GpsSharedPrefrence(mContext)
        .setActivityState(GpsSharedPrefrence.ActivityPause);
super.onPause();
}

public void menuClick() {

View menuView = rightSlider.getLeftBehindView();

   LinearLayout ll_activity, ll_history, ll_configure_device, ll_settings,  ll_activity_summery, ll_logout;

 ll_activity = (LinearLayout) menuView.findViewById(R.id.ll_activity);
 ll_history = (LinearLayout) menuView.findViewById(R.id.ll_history);
 ll_configure_device = (LinearLayout) menuView
        .findViewById(R.id.ll_configure_device);
 ll_settings = (LinearLayout) menuView.findViewById(R.id.ll_settings);
 ll_activity_summery = (LinearLayout) menuView
        .findViewById(R.id.ll_activity_summery);
ll_logout = (LinearLayout) menuView.findViewById(R.id.ll_logout);
LinearLayout ll_report_problem = (LinearLayout)  menuView.findViewById(R.id.ll_report_problem);
     ll_report_problem.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {

        rightSlider.toggleLeftDrawer();

        // Intent intentActivity = new Intent(mContext,
        // Activities.class);
        // startActivity(intentActivity);
        // finish();
    }
});
LinearLayout ll_treadmill = (LinearLayout)    menuView.findViewById(R.id.ll_treadmill);


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


        Intent intentActivity = new Intent(mContext,
                TreadMillActivity.class);
        Bundle  animation=ActivityOptions.makeCustomAnimation(getApplicationContext(), 
                R.anim.animation, R.anim.animation2).toBundle();
        startActivity(intentActivity,animation);


    }
});

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

        Intent intentActivity = new Intent(mContext, Activities.class);
        Bundle animation=ActivityOptions.makeCustomAnimation(getApplicationContext(),
                R.anim.animation, R.anim.animation2).toBundle();
        startActivity(intentActivity,animation);

    }
});
ll_history.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intentActivity = new Intent(mContext,
                HistoryActivity_web.class);
        Bundle animation=ActivityOptions.makeCustomAnimation(getApplicationContext(), 
                R.anim.animation, R.anim.animation2).toBundle();
        startActivity(intentActivity,animation);

    }
});
ll_configure_device.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intentActivity = new Intent(mContext,
                InsoleConnection.class);
        Bundle  animation=ActivityOptions.makeCustomAnimation(getApplicationContext(),
                R.anim.animation, R.anim.animation2).toBundle();
        startActivity(intentActivity,animation);

    }
});
ll_settings.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intentActivity = new Intent(mContext,
                SettingsActivity.class);
        Bundle animation=ActivityOptions.makeCustomAnimation(getApplicationContext(),
                R.anim.animation, R.anim.animation2).toBundle();
        startActivity(intentActivity,animation);

    }
});

ll_activity_summery.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intentActivity = new Intent(mContext,
                ActivitySummery.class);
        Bundle animation=ActivityOptions.makeCustomAnimation(getApplicationContext(),
                R.anim.animation, R.anim.animation2).toBundle();
        startActivity(intentActivity,animation);

      }
   });

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

        new UserSharedPrefrence(mContext).clearPrefrence();
        new BleSharedPrefrence(mContext).clearPrefrence();
        finish();
    }
   });

  }

 public void showAlertDialog(String Message) {
final Dialog dialog = new Dialog(mContext);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(
        new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setCancelable(false);
dialog.setContentView(R.layout.cart_dialog);

TextView txtdetail = (TextView) dialog.findViewById(R.id.txtdetail);
TextView txtno = (TextView) dialog.findViewById(R.id.txtno);

txtno.setVisibility(View.GONE);

TextView txtyes = (TextView) dialog.findViewById(R.id.txtyes);

txtyes.setText("Ok");

txtdetail.setText(Message);
txtyes.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        dialog.dismiss();
    }
});
dialog.show();
}

 @Override
 public void onBackPressed() {
 if(rightSlider.isDrawerOpen(GravityCompat.START)){
    rightSlider.closeDrawer(GravityCompat.START);
  }
   else{

 super.onBackPressed();

   }

 }

您是否为NavDrawer实施了
ActionBarDrawerToggle
? 您可以将其分配给NavDrawer并将其设置为
syncState()

后续行动: 以及以下代码,用于在转到其他活动时关闭NavDrawer:

mBaseDrawerLayout.closeDrawer(mBaseDrawerList);
mBaseDrawerToggle.syncState();

您是否为NavDrawer实施了
ActionBarDrawerToggle
? 您可以将其分配给NavDrawer并将其设置为
syncState()

后续行动: 以及以下代码,用于在转到其他活动时关闭NavDrawer:

mBaseDrawerLayout.closeDrawer(mBaseDrawerList);
mBaseDrawerToggle.syncState();

请发布您的代码,以便有人可以帮助您。引用此链接“旧”导航抽屉模式是否有打开和关闭方法的侦听器?@anopll我已共享此代码。请检查此项。请发布您的代码,以便有人可以帮助您。引用此链接不是“旧”导航抽屉模式导航抽屉模式是否有打开和关闭方法的侦听器?@anopll我已共享了代码。请检查这一点。我没有使用片段,导航抽屉对每个活动都有单独的代码。很好。这段代码(处理NavDrawer的方法)依赖于片段或任何东西。当用户导航到另一个活动(通过Intent)或触摸ActionBar上的NavDrawer开关时,您只需处理关闭状态。因此,我必须关闭使用Intent调用下一个活动的抽屉next activity。是的。你调用“closeDrawer”并同步DrawerToggle状态。我没有使用片段,导航抽屉对每个活动都有单独的代码。没关系。这段代码(处理NavDrawer的方法)依赖于片段或任何东西。当用户导航到另一个活动(通过Intent)或触摸ActionBar上的NavDrawer开关时,您只需处理关闭状态。因此,我必须关闭使用Intent调用下一个活动的抽屉next activity。是的。调用“closeDrawer”并同步抽屉切换状态。