2013-06-26 86 views
-1

我想禁用ActionBar Menu Item,但使其可点击。有什么办法可以做到这一点?禁用ActionBar菜单项,但仍可点击

现在,如果我将setEnabled设置为false这是正常行为,但它不可点击,这只是灰色。

+0

你是什么意思变灰而不是'clickable'。如果你调用'setEnabled(false)',它将会变灰。 – Varun

+0

是的,我希望它变灰,但我也希望它是可点击的。 – input

回答

0

这并没有真正回答这个问题,因为ActionBar Menu Item不能同时被禁用和点击。我最终做的是启用Menu Item并将文本颜色设置为灰色,以使其看起来是伪禁用的。如果条件满足,它会更改为默认颜色。

信用:Nicolai Buch Andersen

public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 

    SpannableStringBuilder text = new SpannableStringBuilder(); 
    text.append(getString(R.string.menu_title)); 

    if (someCondition){ 
     text.setSpan(new ForegroundColorSpan(Color.BLACK), 
       0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } 
    else { 
     text.setSpan(new ForegroundColorSpan(Color.LTGRAY), 
       0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } 


    MenuItem item = menu.findItem(R.id.some_menu_id); 
    item.setTitle(text); 

    return true; 
}