今天在使用DrawerLayout时遇到了NullPointerException(空指针异常)问题:Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.app.ActionBar.hide()’ on a null object reference
贴上错误的代码:
public class MainActivity extends **FragmentActivity** {
private DrawerLayout mDrawerLayout;
private RelativeLayout rightLayout;
private List<ContentModel> list;
private ContentAdapter adapter;
private ImageView leftMenu,rightMenu;
private ListView listView;
private FragmentManager frgmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
**getActionBar().hide();**
错误原因:
if you are using the support library then you have to use getSupportActionBar() instead of getActionBar(), and instead of extends Activity you have to extends AppCompactActivity
译文:如果您使用的支持库然后你必须使用 getSupportActionBar() 而不是 getActionBar(),你要继承 AppCompactActivity而不是继承的Activity。
修改之后的代码:
public class MainActivity extends **AppCompatActivity** {
private DrawerLayout mDrawerLayout;
private RelativeLayout rightLayout;
private List<ContentModel> list;
private ContentAdapter adapter;
private ImageView leftMenu,rightMenu;
private ListView listView;
private FragmentManager frgmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
**getSupportActionBar().hide();**
修改之后编译结果正确。。。
StackOverFlow的解释:
[http://stackoverflow.com/questions/27235501/actionbar-giving-nullpointerexception]