プロジェクトの holoeverywhere バージョンを更新したので、ActionBarSherlock (ABS) ではなく ActionBarCompact (ABC) を使用しなくなりました
私が抱えている問題は、MenuItemCompat.getActionView(aMenuItem) を使用すると、常に null 値を取得することです。
私が持っている正確なコードは次のとおりです。
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.dashboard_menu, menu);
_itemNotifications = menu.findItem(R.id.notifications);
_containerViewItemNotifications = (LinearLayout) MenuItemCompat.getActionView(_itemNotifications);
_viewItemNotifications = (TextView) _containerViewItemNotifications.findViewById(R.id.ActionViewDashboard);
_containerViewItemNotifications.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
public void onClick(View v) {
if (android.os.Build.VERSION.SDK_INT >= 16) {
_viewItemNotifications.setBackground(getResources().getDrawable(R.drawable.qnotificacion_disbled));
} else {
_viewItemNotifications.setBackgroundDrawable(getResources().getDrawable(R.drawable.qnotificacion_disbled));
}
_viewItemNotifications.setText(R.string.empty);
onOptionsItemSelected(_itemNotifications);
}
});
_itemAnotateResult = menu.findItem(R.id.menu_anotate_result);
return super.onCreateOptionsMenu(menu);
}
ここで、MenuItemCompat.getActionView(_itemNotifications) は常に null 値です
私の XML メニュー ファイルは次のようなものです。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/notifications"
android:actionLayout="@layout/actionview_dashboard"
android:title="@string/customize"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/menu_anotate_result"
android:title="@string/anotate"
android:visible="false"
app:showAsAction="ifRoom|withText"/>
</menu>
どうすればこれを克服できますか?Androidのドキュメントで SearchViewItem について説明されているものと同様のアプローチに従おうとしましたが、まったく成功しませんでした
前もって感謝します。