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. 玩转php缓存memcache

    记录 一.本地安装 链接:https://www.cnblogs.com/jkko123/p/6294669.html 二.linux安装

  2. 泛型2(lambda表达式/参数绑定)

    lambda 表达式: Lambda表达式完整的声明格式如下: [capture list] (params list) mutable exception-> return type { fu ...

  3. Python爬虫:带参url的拼接

    如果连接直接这样写,看上去很直观,不过参数替换不是很方便,而且看着不舒服 https://www.mysite.com/?sortField=%E4%BA%BA%E5%B7%A5%E6%99%BA%E ...

  4. 题解 P2960 【[USACO09OCT]Milkweed的入侵Invasion of the Milkweed】

    题目链接 首先这道题是一道经典的BFS.非常适合刚刚学习深搜的同学. 现在分析一下这个问题.首先,每周是八个方向.就是一圈. 也就是说入侵的范围关于时间是成辐射型扩散.让求最大时间. 也就是完美的BF ...

  5. linux防火墙(二)—— iptables语法之选项和控制类型

    一.语法: iptables [-t 表名] 选项 [链名] [匹配条件] [-j 控制类型] 未指定表名时,默认用filter表:链名,控制类型要大写:除非设置默认策略,否则必须指定匹配条件:不指定 ...

  6. linux系统安全及应用——端口扫描

    NMAP是一款强大的网络扫描安全监测工具,通过扫描网络中不需要的服务端口来关闭这些服务,提高安全性.官网是http://nmap.org/,linux安装光盘中自带软件nmap-5.51.3.el6. ...

  7. 犯得错误QAQ

    1.十年OI一场空,不开longlong见祖宗(丢过150分) 2.计算完了再开数组,开的足足的.不要少开0:(丢过一共200分) 3.最大值,最小值一定开成7个f.(丢了20分). 4.freope ...

  8. easyui datagrid可编辑表格使用经验分享

    文章目录 1相关接口方法 2列属性formatter 3编辑器类型 3.1基于my97的编辑器 3.2简单的密码编辑器 3.3动态增加/删除编辑器 4字段的级联操作 4.1combobox的级联操作 ...

  9. 洛谷 P2330 [SCOI2005]繁忙的都市(最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P2330 这道题的问法也实在是太模板了吧: 1.改造的道路越少越好 2.能够把所有的交叉路口直接或间接 ...

  10. mac 配置charles

    从官网下载链接http://www.charlesproxy.com/download 附上注册码: Registered Name: https://zhile.io License Key: 48 ...