/ / Zmeniť TextColor jedného konkrétneho MenuItem v ActionBar z Fragmentu - android, android-fragmenty, štýly, menuitem, textcolor

Zmeniť TextColor jedného konkrétneho MenuItem v ActionBar z Fragment - android, android-fragmenty, štýly, menuitem, textcolor

Mám problémy s zmenou farby textu a jednotný MenuItem (nie v menu pretečenia, bez ikony, lentext) zvnútra fragmentu, zatiaľ čo niektorá podmienka x je pravdivá. Musím buď dať možnosť nastaviť štýl jednej položky a zmeniť ju počas behu, alebo programovo zmeniť jej farbu.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_fragment_account_edit, menu);
((MultiPanelActivity) getActivity()).setToolbarBackButtonVisibility(!Globals.isTablet());
if (mightBeChanges) {
//TODO implement active state with {android.R.attr.textColorSecondary}
} else {
//TODO implement inactive state with {R.attr.colorContrastDark}
}
}

Bol by som rád, keby niekto mohol poskytnúť prístup, že sa dostanem do práce. Vopred ďakujem!

odpovede:

0 pre odpoveď č. 1

Môžete zmeniť v onPrepareOptionsMenu. Zistite, či to funguje

@Override
public boolean onPrepareOptionsMenu(final Menu aMenu) {
final MenuItem menuItem = this.menu.findItem(R.id.user_id_label);
final TextView textView = (TextView) menuItem.getActionView();
//set color with condition
return super.onPrepareOptionsMenu(aMenu);

}


0 pre odpoveď č. 2

Najprv som musel zmeniť naPrepareOptionsMenu, ako navrhla Geethakrishna Juluri, ale musel som tiež pridať riadok, aby som do menu TextView vložil titul menuItems.

@Override
public boolean onPrepareOptionsMenu(final Menu aMenu) {
final MenuItem menuItem = this.menu.findItem(R.id.user_id_label);
final TextView textView = (TextView) menuItem.getActionView();
textView.setTextColor(SOME_COLOR);
textView.setText(menuItem.getTitle);
return super.onPrepareOptionsMenu(aMenu);
}