如何更改按住 ActionBar Item 时出现的 Toast 的文本颜色?

How do you change the text color of the Toast that appears when an ActionBar Item is held?

当用户按住一个 ActionBar 项目时,如果在菜单布局文件的 android:title 属性中指定了项目标题,则会出现一个显示项目标题的 Toast。在我的应用程序中,默认背景颜色与默认文本颜色相同,导致文本几乎难以辨认。如何更改这些 Toast 的背景颜色或文本颜色?

我正在使用 Android 5.1.

illegible toast

如果您想更改 Toast 的 TextColor,可以参考 this question,因为它有一个很好的例子。

要在操作栏项目上执行此操作,您首先需要向操作栏添加自定义视图,因为它不支持处理长按的方法。

我会创建一个用于您的操作栏的布局文件,然后在您的活动 onCreate() 中您可以这样做:

View actionBarView = getLayoutInflater().inflate(R.layout.my_action_bar, null)
ImageView actionItem = (ImageView) actionBarView.findViewById(R.id.myImageViewIcon);
actionItem.setOnLongClickListener(new OnLongClickListener(){
   @Override
   public boolean onLongClick(View v){
      // Show toast with custom text
   }
});
actionItem.setOnClickListener(new OnClickListener(){
   @Override
   public boolean onClick(View v){
      // Handle regular click
   }
});
getSupportActionBar().setCustomView(actionBarView);

关于第二部分的更多信息,您可以参考this question