Я работаю над своим проектом Android, разрабатывающим HTC Desire (Gingerbread 2.3.7) и Google Nexus 7 (Jelly Bean 4.3). Мне нужно отправить некоторые данные из MainActivity в InfoActivity, поэтому я использую намерение. В этой InfoActivity у меня также есть пункт меню на панели действий, чтобы обновить информацию.ActionBar пункт меню по-разному
В InfoActivity я показать данные пользователю. Но это не проблема, проблема с меню. Посмотрите на следующий код:
public class ShowInfoActivity extends ActionBarActivity {
private MenuItem menuItem = null;
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
new OneTask().execute(...);
// ...
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
case R.id.refresh:
menuItem = item;
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private class OneTask extends AsyncTask<Object, Void, String> {
// ...
@Override
protected void onPreExecute() {
MenuItemCompat.setActionView(menuItem,
R.layout.actionbar_indeterminate_progress);
MenuItemCompat.expandActionView(menuItem);
}
// ...
@Override
protected void onPostExecute(String result) {
MenuItemCompat.collapseActionView(menuItem);
MenuItemCompat.setActionView(menuItem, null);
}
}
Очевидно, что в первый раз она выполняется, MENUITEM = NULL, поэтому он должен врезаться. Невероятно, что в HTC он отлично работает, но в Nexus он явно падает. Почему это отличается от устройств?
PS: Я уже решил, но я хочу знать, почему такое поведение ...