あなたのお手伝いをしてくれてありがとうございました。私はここで非常に基本的なものが欠けているかもしれませんが、カスタムレイアウトで作成されたメニュー項目にイメージをロードする方法を数時間試していました。あなたのうちの誰かが私にそれを助けてくれるかな?私は..公式ドキュメントに及び、そのようなこれらCustom view for Menu Itemけどとしてポストにチェックされているカスタムレイアウトで作成したメニュー項目を取得して入力する方法は?
私onCreateOptionsMenu OND OnPrepareOptionsMenu@Override
public boolean onPrepareOptionsMenu(Menu menu) {
final MenuItem alertMenuItem = menu.findItem(R.id.action_my_personal);
FrameLayout rootView = (FrameLayout) alertMenuItem.getActionView();
redCircle = (FrameLayout) rootView.findViewById(R.id.view_alert_red_circle);
countTextView = (TextView) rootView.findViewById(R.id.view_alert_count_textview);
ImageView hc_image_menu_inflated = (ImageView) rootView.findViewById(R.id.hc_image_menu);
rootView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(alertMenuItem);
}
});
if (menu.findItem(R.id.hc_image_menu) != null) {
loadMenuIcon(menu.findItem(R.id.hc_image_menu), my_image_url);
}
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.toolbar_menu_main, menu);
return true;
}
あなたは私がアプリのクラッシュを避けるために、これらの行を追加して見ることができるようだ
、などmenu.finditem(R.id.hc_image_menu)はnullとして戻っていると、問題がどこにあるか私はID hc_image_menuを持っていますが、非常に多くの試み
if (menu.findItem(R.id.hc_image_menu) != null) {
loadMenuIcon(menu.findItem(R.id.hc_image_menu), my_image_url);
}
01にもかかわらず、成功しているわけではないImageViewのを移入したいと、それは、です私
toolbar_main_menuレイアウトはこれであるため
私のコード:
<item
android:id="@+id/action_my_personal"
app:actionLayout="@layout/toolbar_menu_hc"
android:orderInCategory="100"
android:title="My Personal Trainer"
app:showAsAction="always" />
そして、私のカスタムレイアウト(toolbar_hc_menu)のためにはこの1つである:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="48dp"
android:layout_height="32dp"
android:layout_gravity="center">
<ImageView
android:id="@+id/hc_image_menu"
android:layout_marginRight="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/gavin"/>
<FrameLayout
android:id="@+id/view_alert_red_circle"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_gravity="top|end"
android:background="@drawable/date_circle"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:id="@+id/view_alert_count_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/white"
android:textSize="10sp"
tools:text="3"/>
</FrameLayout>
任意のための非常にありがとうをそれに助けてください。本当にありがとう! :)
hc_image_menuはメニュー項目ではありません。 – nomag
こんにちは@nomagご返信ありがとうございます。はい、私は知っていますが、hc_image_menuイメージビューに関連付けられている適切なメニュー項目を取得する方法を知らないだけですか?再度、感謝します! –
既にmenuItem:alertMenuItemがあります。ではない ? – nomag