android:orientation="vertical"(AndroidStudio不提示,这个要记住了)

昨天好不容易把ActionBar从溢出菜单overflow中弄出来了,,,,,现在为菜单注册事件

参考代码:https://www.aliyun.com/jiaocheng/71385.html

参考别人代码,这段算是写了,遇到了不少麻烦

2.启用程序图标导航

  actionBar.setDisplayHomeAsUpEnabled(true);---显示向左的箭头

  actionBar.setDisplayShowHomeEnabled(false);--设置

  actionBar.setHomeButtonEnabled(true);--设置应用程序图标变成可点击的按钮

  通过android.R.id.home能识别这个箭头按钮

下面是全部的代码:后台代码  布局简单 资源文件 菜单

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<!--<item android:title="first"-->
<!--android:icon="@mipmap/ic_launcher_round"-->
<!--app:showAsAction="ifRoom"-->
<!--android:id="@+id/action_test">-->
<!--<menu>-->
<!--<group android:checkableBehavior="single">-->
<!--<item android:id="@+id/d"-->
<!--android:title="@string/test1"></item>-->
<!--<item android:id="@+id/f"-->
<!--android:title="@string/test1"></item>-->
<!--</group>-->
<!--</menu>-->
<!--</item>-->
<!--<item app:showAsAction="ifRoom|always"-->
<!--android:title="dfsdfsd">--> <!--</item>-->
<item android:id="@+id/action1" android:title="@string/font_size" app:showAsAction="always|withText" android:icon="@mipmap/ic_launcher_round">
<menu> <!-- 定义一组单选菜单项-->
<group android:checkableBehavior="single"> <!-- 定义多个菜单项-->
<item android:id="@+id/font_10" android:title="@string/font_10" />
<item android:id="@+id/font_12" android:title="@string/font_12" />
<item android:id="@+id/font_14" android:title="@string/font_14" />
<item android:id="@+id/font_16" android:title="@string/font_16" />
<item android:id="@+id/font_18" android:title="@string/font_18" />
</group>
</menu>
</item> <!-- 定义一个普通菜单项-->
<item android:id="@+id/action2" app:showAsAction="never" android:title="@string/plain_item">
</item> <item android:id="@+id/action3" android:title="@string/font_color" app:showAsAction="never" android:icon="@mipmap/ic_launcher_round">
<menu> <!-- 定义一个允许复选的菜单项-->
<group> <!-- 定义三个菜单项-->
<item android:id="@+id/red_font" android:title="@string/red_title" />
<item android:id="@+id/blue_font" android:title="@string/blue_title" />
<item android:id="@+id/green_font" android:title="@string/green_title" />
</group>
</menu>
</item>
</menu>
 package com.example.administrator.actionbar;

 import android.annotation.SuppressLint;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends AppCompatActivity { ActionBar actionBar;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置横屏
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
actionBar = getSupportActionBar();
Log.v("z",getSupportActionBar()+"");
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
textView = (TextView)findViewById(R.id.tv_txt);
registerForContextMenu(textView); } /** * 加载菜单 * * @param menu * @return */
@Override public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = new MenuInflater(this); //装填R.menu.my_menu对应的菜单,并添加到menu中
inflater.inflate(R.menu.actionbar, menu);
//重要代码,使菜单不在overflow中显示
MenuItemCompat.setShowAsAction(menu.findItem(R.id.action1),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
MenuItemCompat.setShowAsAction(menu.findItem(R.id.action2),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
MenuItemCompat.setShowAsAction(menu.findItem(R.id.action3),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.isCheckable())
{
item.setChecked(true);
}
switch (item.getItemId()){
case R.id.font_10:
textView.setTextSize(10*2);
case R.id.font_12:
textView.setTextSize(12 * 2);
item.setChecked(true);
break;
case R.id.font_14:
textView.setTextSize(14 * 2);
item.setChecked(true);
break;
case R.id.font_16:
textView.setTextSize(16 * 2);
item.setChecked(true);
break;
case R.id.font_18:
textView.setTextSize(18 * 2);
item.setChecked(true);
break;
case R.id.red_font:
textView.setTextColor(Color.RED);
item.setChecked(true);
break;
case R.id.blue_font:
textView.setTextColor(Color.BLUE);
item.setChecked(true);
break;
case R.id.action2:
Toast.makeText(this,"普通菜单",Toast.LENGTH_SHORT).show();
break;
case android.R.id.home:
Toast.makeText(this,"jiantoubeidianjil",Toast.LENGTH_SHORT).show();
break;
} return super.onOptionsItemSelected(item);
}
/** * 上下文菜单中菜单项被单击时触发该方法 * * @param item * @return */
@Override
public boolean onContextItemSelected(MenuItem item)
{ //勾选该菜单项
item.setChecked(true);
switch (item.getItemId())
{
case R.id.red:
item.setChecked(true);
textView.setBackgroundColor(Color.RED);
break;
case R.id.green:
item.setChecked(true);
textView.setBackgroundColor(Color.GREEN);
break;
case R.id.blue:
item.setChecked(true);
textView.setBackgroundColor(Color.BLUE);
break;
}
return true;
} // @SuppressLint("NewApi")
// @Override
// protected void onStart() {
//
// super.onStart();
// //获取Actionbar
//
// actionBar.setDisplayHomeAsUpEnabled(true);
// }
// @SuppressLint("NewApi")
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// //资源文件添加菜单
// new MenuInflater(this).inflate(R.menu.actionbar, menu);
// //代码添加菜单
// MenuItem item=menu.add("分享(动态添加)");
// item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
// MenuItem.SHOW_AS_ACTION_WITH_TEXT);
// item.setIcon(android.R.drawable.ic_menu_share);
//
//
//
// return super.onCreateOptionsMenu(menu);
// }
public void hideActionBar(View view)
{
actionBar.hide();
}
public void showActionBar(View view)
{
actionBar.show();
}
}

Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色的更多相关文章

  1. Android界面编程--使用活动条(ActionBar)--实现Tab导航

    使用ActionBar结合fragment实现导航 1,调用ActionBar的setNavigationModel(ActionBar.NAVIGATION_MODE_TABS)设置使用tabs导航 ...

  2. Android界面编程--使用活动条(ActionBar)--添加Action View

    ActionBar除了显示Action Item 外,还能显示普通的ui组件 2种方式添加Action View 1.指定ActionView的实现类 2.指定ActionView对应的视图资源 实现 ...

  3. Android界面编程--使用活动条(ActionBar)

    ActionBar的使用 1.启动ActionBar(默认状态下是启动的) 1.1 在Android配置文件(AndroidManifest.xml)中设置应用的主题为 ***.NoActionBar ...

  4. 关于Android界面编程与视图(View)组件

    UI组件--------------->android.widget.* View组件------------->android.view.* 视图(View)组件 所有UI组件都是建立在 ...

  5. Android中动态改变Listview中字体的颜色

    效果如下: 账目显示用的是Listview,要实现的功能为使其根据所在Item是“收入”还是“支出”来把数字设置成绿色或红色 方法是自定义适配器,并重写其中getView()函数,实现如下: //自定 ...

  6. Android界面布局基本属性

    在 android 中我们常用的布局方式有这么几种:1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角)              ...

  7. android 界面布局 很好的一篇总结[转]

    1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角) 线性布局分为水平线性和垂直线性二者的属性分别为:android:orienta ...

  8. Android活动条(actionbar)使用具体解释(一)

        活动条(ActionBar)是Android3.0的重要更新之中的一个.ActionBar位于传统标题的位置,其主要提供了例如以下功能:     >显示选项菜单的菜单项,即激昂菜单项显示 ...

  9. Android学习笔记(35):Android活动条

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,当中有一个很好用的新功能就是引入的ActionBar,用于代替3.0之前的标题栏,并提供更为丰富的导航效果. ActionB ...

随机推荐

  1. kali linux之netcat

    网络工具中的瑞士军刀----体积小,功能强大 侦听模式/传输模式 telnet/获取banner信息 传输文本信息,文件,目录 加密传输文件,远程控制/木马,加密所有流量(来做远程控制是非常理想的选择 ...

  2. 【转】asp.net中设置弹出谈话框的几种方式详解

    源地址:https://blog.csdn.net/zou15093087438/article/details/79637114 注:可用winform的MessageBox的方法,只需引用Syst ...

  3. GitHub CEO:GitHub 十年,感谢有你

    简评:不知为何,总感觉 GitHub 成立不止 10 年了,你们有这种错觉么? 本文是 GitHub 联合创始人兼 CEO:Chris Wanstrath 在计算机世界杂志写的文章. 当我们回顾 Gi ...

  4. Qt 学习之路 2(42):QListWidget、QTreeWidget 和 QTableWidget

    Qt 学习之路 2(42):QListWidget.QTreeWidget 和 QTableWidget 豆子 2013年2月5日 Qt 学习之路 2 38条评论 上一章我们了解了 model/vie ...

  5. C++_新特性总结与未来的路

    了解C++之后,可以阅读一些高级主题和面向对象编程相关的书籍: OOP有助于开发大型的项目,并提高其可靠性: OOP方法的基本活动之一就是发明能够模拟当前情况的类.当前情况被统称为问题域. 由于实际问 ...

  6. UVALive - 7061 区间DP初步

    题意:杀一只狼i会收到a[i]+b[i当前左边]+b[i当前右边]的攻击,求杀死所有狼的最小代价 #include<iostream> #include<algorithm> ...

  7. js 方法总结

    1. 格式化时间 function format(str,fmt) { var usedDate = new Date(usedDay); var o = { "M+": used ...

  8. centos 7 禅道bug管理软件部署

    2018-10-26 部署前置条件 关闭防火墙或者添加防火墙规则,使禅道端口可以通过防火墙 关闭防火墙与selinux 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机 ...

  9. 联想g400怎么进bios设置u盘启动图文教程

    联想g400怎么进bios设置u盘启动图文教程 转自http://www.kqidong.com/bios/3940.html 虽然成功学会u盘装系统的人很多,但是设置u盘启动在小白们的眼中却没有那么 ...

  10. MongoDB 配置服务

    参考网址:https://jingyan.baidu.com/article/d5c4b52b906bafda560dc591.html 1.MongoDB 有一个不方便,需要配置服务,默认启动,否则 ...