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”并同步抽屉切换状态。