Android 如何从活动移回导航抽屉
首先,我创建了导航抽屉活动的应用程序,并从片段移动到新活动,现在我想在新活动上设置Home按钮,该按钮将导航到导航抽屉的主活动。我尝试使用以下代码:Android 如何从活动移回导航抽屉,android,fragment,Android,Fragment,首先,我创建了导航抽屉活动的应用程序,并从片段移动到新活动,现在我想在新活动上设置Home按钮,该按钮将导航到导航抽屉的主活动。我尝试使用以下代码: btnHome.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(add_activity
btnHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(add_activity.this,MainFragment.class);
startActivity(intent);
finish();
}
});
但是出现了一个错误,因为您的应用程序已停止我们需要更多详细信息来帮助您。 我注意到的第一件事是这句话
Intent intent = new Intent(add_activity.this,MainFragment.class);
startActivity(intent);
finish();
这样做的问题是,您不能有目的地启动片段
如果要从MainActivity启动TravelActivity,请执行以下操作:
Intent intent = new Intent (this /*indicating your current activity*/, TravelActivity.class /*indicating Activity you want to start*/)
startActivity(intent); //start TravelActivity
finish() //finish current activity - if you press back you will exit the app (if MainActivity was launcher activity)
如果您有应该在旅行活动开始时加载的片段,下面是一个简单的帮助器方法,它将为您执行片段事务
public void replaceFragment(int rootViewId, Fragment fragment, boolean addToBackStack) {
try {
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragment == null)
return;
if (checkIfFragmentIsCurrent(fragment, rootViewId))
return;
String backStateName = fragment.getClass().getSimpleName();
boolean fragmentPopped = fragmentManager.popBackStackImmediate(backStateName, 0);
if (!fragmentPopped) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(rootViewId, fragment);
if (addToBackStack) {
transaction.addToBackStack(fragment.getClass().getSimpleName());
}
transaction.commit();
}
} catch (Exception e) {
Log.e("ReplaceFragment", "Exception: " + e.getMessage());
}
}
protected boolean checkIfFragmentIsCurrent(Fragment fragment, int placeHolderRes) {
Fragment currentFragment = getSupportFragmentManager().findFragmentById(placeHolderRes);
if (fragment != null && currentFragment != null) {
if (fragment.getClass().equals(currentFragment.getClass())) {
return true;
}
}
return false;
}
为了使用这个函数,只需调用replacFragment(保存片段的容器ID,片段实例,true-如果您想将片段添加到backbackback中)
要了解片段事务,请参考此包括日志猫!这里没有足够的信息,任何人都无法回答您的问题。自然任务后台排序应该让您返回吗?使用一个图表,或者你想要发生的事情的纹理流。好吧,忘掉这个错误。请告诉我从活动到导航抽屉需要什么类型的代码,上面的代码正确吗?