Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色
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的字体和颜色的更多相关文章
- Android界面编程--使用活动条(ActionBar)--实现Tab导航
使用ActionBar结合fragment实现导航 1,调用ActionBar的setNavigationModel(ActionBar.NAVIGATION_MODE_TABS)设置使用tabs导航 ...
- Android界面编程--使用活动条(ActionBar)--添加Action View
ActionBar除了显示Action Item 外,还能显示普通的ui组件 2种方式添加Action View 1.指定ActionView的实现类 2.指定ActionView对应的视图资源 实现 ...
- Android界面编程--使用活动条(ActionBar)
ActionBar的使用 1.启动ActionBar(默认状态下是启动的) 1.1 在Android配置文件(AndroidManifest.xml)中设置应用的主题为 ***.NoActionBar ...
- 关于Android界面编程与视图(View)组件
UI组件--------------->android.widget.* View组件------------->android.view.* 视图(View)组件 所有UI组件都是建立在 ...
- Android中动态改变Listview中字体的颜色
效果如下: 账目显示用的是Listview,要实现的功能为使其根据所在Item是“收入”还是“支出”来把数字设置成绿色或红色 方法是自定义适配器,并重写其中getView()函数,实现如下: //自定 ...
- Android界面布局基本属性
在 android 中我们常用的布局方式有这么几种:1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角) ...
- android 界面布局 很好的一篇总结[转]
1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角) 线性布局分为水平线性和垂直线性二者的属性分别为:android:orienta ...
- Android活动条(actionbar)使用具体解释(一)
活动条(ActionBar)是Android3.0的重要更新之中的一个.ActionBar位于传统标题的位置,其主要提供了例如以下功能: >显示选项菜单的菜单项,即激昂菜单项显示 ...
- Android学习笔记(35):Android活动条
在Android3.0之后,Google对UI导航设计上进行了一系列的改革,当中有一个很好用的新功能就是引入的ActionBar,用于代替3.0之前的标题栏,并提供更为丰富的导航效果. ActionB ...
随机推荐
- 20165219 2017-2018-2 《Java程序设计》第5周学习总结
20165219 2017-2018-2 <Java程序设计>第5周学习总结 课本知识总结 第7章 内部类与异常类 一 1 内部类:类的一种成员 2 外嵌类:包含内部类的类称为内部类的外嵌 ...
- [AGC006] D - Median Pyramid Hard 二分
Description 现在有一个NN层的方块金字塔,从最顶层到最底层分别标号为1...N1...N. 第ii层恰好有2i−12i−1个方块,且每一层的中心都是对齐的. 这是一个N=4N=4的 ...
- 洛谷P4015 运输问题(费用流)
传送门 源点向仓库连费用$0$,流量为储量的边,商店向汇点连费用$0$,流量为需求的边,然后仓库向商店连流量$inf$,费用对应的边,跑个费用流即可 //minamoto #include<io ...
- 【python】Python的logging模块封装
#!/usr/local/python/bin # coding=utf-8 '''Implements a simple log library. This module is a simple e ...
- java开发系统内核:让内核从严重错误中恢复
更详细的讲解和代码调试演示过程,请参看视频 用java开发C语言编译器 更详细的讲解和代码调试演示过程,请参看视频 如何进入google,算法面试技能全面提升指南 如果你对机器学习感兴趣,请参看一下链 ...
- P3185 [HNOI2007]分裂游戏
$ \color{#0066ff}{ 题目描述 }$ 聪聪和睿睿最近迷上了一款叫做分裂的游戏. 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i ...
- Freeman链码
[简介] 链码(又称为freeman码)是用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,常被用来在图像处理.计算机图形学.模式识别等领域中表示曲线和区域边界.它是一种边界的编码表示法,用边 ...
- springboot整合mybatis,druid,mybatis-generator插件完整版
一 springboot介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- 老男孩python作业4-ATM程序开发
实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...
- 不带 www 跳转 到 带 www 网站..
IIS: <rule name="已导入的规则 1-1" stopProcessing="true"> <match url="^( ...