Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改在按住ActionBar项时显示的Toast的文本颜色?_Java_Android_Android Actionbar_Toast - Fatal编程技术网

Java 如何更改在按住ActionBar项时显示的Toast的文本颜色?

Java 如何更改在按住ActionBar项时显示的Toast的文本颜色?,java,android,android-actionbar,toast,Java,Android,Android Actionbar,Toast,当用户按住ActionBar项时,会出现一个Toast,显示该项的标题(如果在菜单布局文件的android:title属性中指定了标题)。在我的应用程序中,默认背景颜色与默认文本颜色相同,使文本几乎难以辨认。如何更改这些祝酒词的背景颜色或文本颜色 我使用的是安卓5.1 如果您想更改Toast的TextColor,您可以参考,因为它有一个很好的示例 要在操作栏项目上执行此操作,首先需要向操作栏添加自定义视图,因为它不支持处理长时间单击的方法 我将创建一个用于操作栏的布局文件,然后在activiti

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

我使用的是安卓5.1


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

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

我将创建一个用于操作栏的布局文件,然后在activities 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);

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

这在哪里回答了原始问题?在操作栏中创建自定义视图并实现
onLongClick()
并不是“更改菜单默认toast的文本颜色”。@AustynMahoney答案建立在我链接的另一个问题的基础上。另一个问题显示了如何更改Toast文本,我详细介绍了如何处理onLongClick。OP只需长按一下就可以显示他们的定制吐司,而不是默认吐司。他问你如何设计默认吐司的样式,而不是如何创建一个来替换它。我想解决这个问题,创建一个自定义操作项来修复toast似乎是一个难题。我不认为您可以对出现的现有toast进行样式化,因为它是为您创建的,所以我认为这是您可以“覆盖”它的唯一方法。我会考虑其他的选择,但OP觉得这没问题。