1

我运行以下代码:

   public class MainActivity extends ActionBarActivity  
    {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
public static final String PREFS_NAME = "MyPrefsFile";
static SharedPreferences mPrefs;
SharedPreferences.Editor shPrefEditor;
public int BlackBackground=0, SleepScreen=1;
static MenuInflater inflater;
public ActionBar ab;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);  

    mPrefs = getSharedPreferences(PREFS_NAME, 0);
    shPrefEditor = mPrefs.edit();
    BlackBackground = mPrefs.getInt("BlackBackground", 0);
    inflater = getMenuInflater();
...

模拟器在以下情况下崩溃(NullPointerException):

inflater = getMenuInflater();

有谁知道为什么?我该如何解决?

4

1 回答 1

0

为了解决这个问题,getMenuInflater() 需要从 onCreate 移动到 onCreateOptionsMenu()。如果从 onCreate() 调用 getMenuInflater() 似乎有些设备(例如 Nexus 5)会导致崩溃,此外 onCreateOptionsMenu() 确实是正确的位置。

于 2014-02-06T10:33:21.503 回答