私はメニュー項目で活動しています。ユーザーがこのアクティビティに来るたびに、私はtextViewの値をいくつかのユーティリティ値で更新したいと思います。これは私のコードです。androidのメニュー項目を更新するには
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_my2, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu){
RelativeLayout badgeLayout = (RelativeLayout) menu.findItem(R.id.badge).getActionView();
TextView tv = (TextView) badgeLayout.findViewById(R.id.actionbar_notifcation_textview);
tv.setText(String.valueOf(Utility.ShoppingCartItemCount()));
return true;
}
これは、(アクティビティの起動時に)値を1回だけ更新しています。しかし、ユーザーがこのアクティビティから移動してこのアクティビティを再度実行すると、これは更新されず、Utility.ShoppingCartItemCount()の値も更新されます。
これを解決するにはどうすればよいですか?
'Utility.ShoppingCartItemCount())'は何を返しますか?毎回異なる価値を提供していますか?なぜなら、いつもメニューが表示されているときは、 'onPrepareOptionsMenu'が呼び出されるからです。更新されたテキストが表示されない場合は、チェックする必要があります。 – AADProgramming
@Deveshチェック 'Utility.ShoppingCartItemCount()'は、あなたのメインアクティビティに戻っても保持されます。もしそうなら、アクティビティの 'onResume'メソッドで' TextView'のテキストを変更してください。 – ELITE