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 ...
随机推荐
- day4学python 字符编码转换+元组概念
字符编码转换+元组概念 字符编码转换 #coding:gbk //此处必声明 文件编码(看右下角编码格式) #用来得到python默认编码 import sys print(sys.getdefaul ...
- Atcoder Grand Contest 031C(构造,思维,异或,DFS)
#include<bits/stdc++.h>using namespace std;int n,a,b,sum;void dfs(int x,int y,int ban){ if( ...
- ASPxGridView后台实现隐藏新增按钮
(ASPxGridView2.Columns[0] as GridViewCommandColumn).NewButton.Visible = false;//0应该代表的是NewButton所在的列 ...
- ASP.NET Core 一个Json返回类
很多时候(如Ajax)我们需要从Web应用中得到标准的反馈以便进行数据分析. 为此,我将各类返回标准化封装,客户端将统一得到 JSON:[{"status":200,"m ...
- 【noip2017】【Luogu3960】列队 线段树
题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n \times mn×m 名学生,方阵的 ...
- Linux 调节分辨率
首先,你要有 GUI 才能设置分辨率 Tool of xrandr xrandr -s 1360x768
- pip_install的安装
1.下载get-pip.py https://pip.pypa.io/en/latest/installing/#id9 2.运行 python get-pip.py 3.python -m pip ...
- vue可视化图表 基于Echarts封装好的v-charts简介
**vue可视化图表 基于Echarts封装好的v-charts** 近期公司又一个新的需求,要做一个订单和销售额统计的项目,需要用到可视化图表来更直观的展示数据.首先我想到的是Echarts,众所周 ...
- abp + angular 前端使用 hash ,登录界面不跳转问题
abp 项目默认的路由没有使用hash,这会导致手动刷新浏览器时,页面404错误: 解决方法网上很多,就是在路由里添加一个{useHash: true},就行了. #用Hash带来的新问题# abp框 ...
- [转] 前后端分离之JWT用户认证
[From] http://www.jianshu.com/p/180a870a308a 在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当 ...