Java 为什么我得到了;“无法访问的语句错误”;为了碎片?
我的活动已扩展到AppCompative活动。我也成功地设置了一个抽屉。现在,当我在片段上执行事务时,它基本上使用begintransaction。但是我在Java 为什么我得到了;“无法访问的语句错误”;为了碎片?,java,android,fragment,Java,Android,Fragment,我的活动已扩展到AppCompative活动。我也成功地设置了一个抽屉。现在,当我在片段上执行事务时,它基本上使用begintransaction。但是我在FragmentManager FragmentManager=getSupportFragmentManager()上得到了这个错误消息Unreachable语句。我希望有人能帮助我。这段代码 /** * Created by myozawoo on 3/12/16. */ public class MainActivity exten
FragmentManager FragmentManager=getSupportFragmentManager()上得到了这个错误消息Unreachable语句代码>。我希望有人能帮助我。这段代码
/**
* Created by myozawoo on 3/12/16.
*/
public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {
private static String TAG = MainActivity.class.getSimpleName();
@Bind(R.id.home_screen_toolbar) Toolbar toolbar;
private FragmentDrawer fragmentDrawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
fragmentDrawer = (FragmentDrawer) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
fragmentDrawer.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
fragmentDrawer.setDrawerListener(this);
displayView(0);
}
@Override
public void onDrawerItemSelected(View view, int position) {
displayView(position);
}
private void displayView(int position) {
Fragment fragment = null;
String title = getString(R.string.app_name);
switch (position) {
case 0:
fragment = new SearchDonorsFragment();
title = getString(R.string.nav_item_search_donors);
break;
case 1:
fragment = new ProfileFragment();
title = getString(R.string.nav_item_profile);
break;
case 2:
fragment = new AboutFragment();
title = getString(R.string.nav_item_about);
break;
default:
break;
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.commit();
// set the toolbar title
getSupportActionBar().setTitle(title);
}
}
}
}
永远不会执行,因为它与开关条件中的任何情况都不关联
这就是错误的原因
问题修正:
你可以:
1-。把它从开关箱里拿出来
或
2-。思考应该在哪种情况下执行。这段代码
/**
* Created by myozawoo on 3/12/16.
*/
public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {
private static String TAG = MainActivity.class.getSimpleName();
@Bind(R.id.home_screen_toolbar) Toolbar toolbar;
private FragmentDrawer fragmentDrawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
fragmentDrawer = (FragmentDrawer) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
fragmentDrawer.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
fragmentDrawer.setDrawerListener(this);
displayView(0);
}
@Override
public void onDrawerItemSelected(View view, int position) {
displayView(position);
}
private void displayView(int position) {
Fragment fragment = null;
String title = getString(R.string.app_name);
switch (position) {
case 0:
fragment = new SearchDonorsFragment();
title = getString(R.string.nav_item_search_donors);
break;
case 1:
fragment = new ProfileFragment();
title = getString(R.string.nav_item_profile);
break;
case 2:
fragment = new AboutFragment();
title = getString(R.string.nav_item_about);
break;
default:
break;
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.commit();
// set the toolbar title
getSupportActionBar().setTitle(title);
}
}
}
}
永远不会执行,因为它与开关条件中的任何情况都不关联
这就是错误的原因
问题修正:
你可以:
1-。把它从开关箱里拿出来
或
2-。考虑应该在哪种情况下执行。看起来您需要重新考虑switch语句的逻辑。break
语句终止switch语句,并且在它运行之后没有代码,因此break
应该在任何可能运行的代码之后。看起来您需要重新考虑switch语句的逻辑。break
语句终止switch语句,并且在它运行后没有代码,因此break
应该位于任何可能运行的代码之后。在默认部分的代码之后给出break
无法访问代码,因为在默认位置它被赋予了“先断开”的功能。因此,请按如下所示更改默认部分:
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = ....
}
在默认部分的代码之后给出break
无法访问代码,因为在默认位置它被赋予了“先断开”的功能。因此,请按如下所示更改默认部分:
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = ....
}
default
在情况下
控制流意味着,如果任何其他选项未运行,将调用default
如果将中断
放入其中,将定义以下内容。遥不可及
查看代码的逻辑,if
的应该位于开关的外部
default:
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.commit();
// set the toolbar title
getSupportActionBar().setTitle(title);
}
break;
default
在情况下
控制流意味着,如果任何其他选项未运行,将调用default
如果将中断
放入其中,将定义以下内容。遥不可及
查看代码的逻辑,if
的应该位于开关的外部
default:
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.commit();
// set the toolbar title
getSupportActionBar().setTitle(title);
}
break;
您认为在default
break
语句之后会发生什么?不知道。。。因为。。。显示视图(0);我该怎么做bro?中断后,编译器将退出switch case,并且在任何情况下都不会调用事务代码在默认中断语句后会发生什么?不知道。。。因为。。。显示视图(0);我该怎么做bro?在中断后,你的编译器将退出switch case,你的事务代码在任何情况下都不会被调用1对我来说是可以的bro。。。我忘了搬出开关箱:当你找到答案时:)1对我来说没问题,兄弟。。。我忘了搬出开关箱:当你找到答案时:)