Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么删除此下拉菜单会破坏此应用程序?_Java_Android_Android Fragments_Drop Down Menu - Fatal编程技术网

Java 为什么删除此下拉菜单会破坏此应用程序?

Java 为什么删除此下拉菜单会破坏此应用程序?,java,android,android-fragments,drop-down-menu,Java,Android,Android Fragments,Drop Down Menu,这不是我的代码,但我正在使用一个包含两个活动和一个下拉菜单的应用程序。您可以通过下拉菜单在这两个活动之间导航。我的目标是删除其中一个活动和下拉菜单。我所完成的只是从下拉菜单中删除活动,使其默认为另一个,所以现在我需要删除下拉菜单。但是,由于显示的活动是由下拉列表定义的,如果我尝试删除下拉列表,它只会绘制一个只显示操作栏的空白页面。从这个代码判断,有人有可能找到解决方案吗 导入android.annotation.TargetApi; 导入android.app.ActionBar; 导入and

这不是我的代码,但我正在使用一个包含两个活动和一个下拉菜单的应用程序。您可以通过下拉菜单在这两个活动之间导航。我的目标是删除其中一个活动和下拉菜单。我所完成的只是从下拉菜单中删除活动,使其默认为另一个,所以现在我需要删除下拉菜单。但是,由于显示的活动是由下拉列表定义的,如果我尝试删除下拉列表,它只会绘制一个只显示操作栏的空白页面。从这个代码判断,有人有可能找到解决方案吗

导入android.annotation.TargetApi;
导入android.app.ActionBar;
导入android.net.Uri;
导入android.os.Bundle;
导入android.content.Context;
导入android.content.Intent;
导入android.os.Build;
导入android.support.v4.app.DialogFragment;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentActivity;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.widget.ArrayAdapter;
公共类MainActivity扩展了FragmentActivity实现
ActionBar.OnNavigationListener{
受保护的最终字符串日志=“.MainActivity”;
/**
*表示
*当前下拉位置。
*/
私有静态最终字符串状态\u SELECTED\u NAVIGATION\u ITEM=“SELECTED\u NAVIGATION\u ITEM”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置操作栏以显示下拉列表。
最终ActionBar ActionBar=getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u列表);
actionBar.setDisplayShowHomeEnabled(真);
actionBar.setIcon(R.drawable.ic_启动器);
//在操作栏中设置下拉列表导航。
actionBar.setListNavigationCallbacks(
//指定SpinnerAdapter以填充下拉列表。
新的阵列适配器(getActionBarThemedContextCompat(),
android.R.layout.simple\u list\u item\u 1,
android.R.id.text1,新字符串[]{
//getString(R.string.title\u section\u recent),
getString(R.string.title\u section\u all),}),this);
/**if(!getPreferences(Context.MODE_PRIVATE).getBoolean(“免责声明_accepted”,false)){
DialogFragment dialog=新免责声明DialogFragment();
show(getSupportFragmentManager(),“DisclaiderDialogFragment”);
}**/
}
/**
*{@link ActionBar#getThemedContext()}的向后兼容版本
*只要返回{@link android.app.Activity}如果
*
getThemedContext
不可用。 */ @TargetApi(构建版本代码冰淇淋三明治) 私有上下文getActionBarThemedContextCompat(){ if(Build.VERSION.SDK\u INT>=Build.VERSION\u代码.冰淇淋\u三明治){ 返回getActionBar().getThemedContext(); }否则{ 归还这个; } } @凌驾 RestoreInstanceState上的公共无效(Bundle savedInstanceState){ //恢复以前序列化的当前下拉列表位置。 if(savedInstanceState.containsKey(状态\选定\导航\项)){ getActionBar().setSelectedNavigationItem( savedInstanceState.getInt(STATE_SELECTED_NAVIGATION_ITEM)); } } @凌驾 公共布尔onCreateOptions菜单(菜单){ //为菜单充气;这会将项目添加到操作栏(如果存在)。 getMenuInflater().充气(R.menu.main,menu); 返回true; } @凌驾 公共布尔值onOptionsItemSelected(菜单项项){ 开关(item.getItemId()){ 案例R.id.action\u view\u来源: 意向i2=新意向(意向.行动\视图); i2.setData(Uri.parse(this.getString(R.string.url_source)); 这是一种新的触觉(i2); 返回true; 案例R.id.action\u view\u翻译: 意向i3=新意向(意向.行动\视图); i3.setData(Uri.parse(this.getString(R.string.url_translation)); 这是指触觉(i3); 返回true; 案例R.id.action\u view\u bug: 意向i4=新意向(意向.行动\视图); i4.setData(Uri.parse(this.getString(R.string.url_bugs)); 这是指触觉(i4); 返回true; 违约: 返回super.onOptionsItemSelected(项目); } } @凌驾 SaveInstanceState上的公共无效(束超出状态){ //序列化当前下拉列表位置。 outState.putInt(STATE\u SELECTED\u NAVIGATION\u项,getActionBar() .getSelectedNavigationIndex()); } @凌驾 公共布尔值onNavigationItemSelected(整型位置,长id){ //选择给定的下拉项后,将其内容显示在 //容器视图。 片段=空; 开关(位置){ 案例0: fragment=新的AllTasksListFragment(); 打破 案例1: //fragment=新的RecentTaskListFragment(); 打破 } getSupportFragmentManager().beginTransaction() .replace(R.id.container,fragment).commit(); 返回true; }
}
因为您的所有活动只显示一个片段。并且在onNavigationItemSelected期间选择片段。如果没有调用它,那么您永远不会设置默认片段。因此,在onCreate中,添加一个事务以添加要保留的片段。然后你可以杀死掉掉的东西