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. python爬取淘宝排名

    import timeimport jsonimport requestsimport xlrdimport randomimport os from xlutils.copy import copy ...

  2. dubbo 面试题

      dubbo是什么 dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含:集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等 ...

  3. gym 102082G BZOJ4240 贪心+树状数组

    4240: 有趣的家庭菜园 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 756  Solved: 349[Submit][Status][Discu ...

  4. [HEOI2012]采花 树状数组 BZOJ 2743

    题目描述 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花. 花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于 ...

  5. win 10 问题

    1.  windows 10 已联网 ,但 访问应用商店 提示 未连接网络. step1:  打开网络和 internet 设置.. step2: 取消 打圈的 两个选择..!就好.

  6. elemetnui 分页..解决 bug

    :current-page.sync="thisCurPage" 的确会 修改页码,但是会触发一个 bug... 比如 当前 选择的是第二页,使用 js 模拟 点击(或者修改父组件 ...

  7. liunx php-fpm

    查看php-fpm 相关信息 查看php-fpm是否开启 :ps -ef|grep php 查看php-fpm的位置:whereis php-fpm 查看php-fpm进程数:ps aux | gre ...

  8. no git binary found in $path(已解决,但是还有疑问)

    跟同行研究个项目代码,他把代码打包发我后,我解压到本地,路径和我本地个人项目路径基本相同, 但是当执行npm install时,就报了 no git binary found in $path ,这个 ...

  9. Java正则表达式-捕获组

    private Set<String> getCodes(String s) { Set<String> resultSet = new HashSet<>(); ...

  10. Java swing中的keyListener使用事例

    最近在学习Java swing,写了一个域内聊天室,实现用户登录ip,端口号之后,进入聊天窗口聊天: 通过菜单条增加了几个功能,边框,字体,颜色和文件传输.风格里的样式都可以通过自己选择来设置. 介绍 ...