zoukankan      html  css  js  c++  java
  • 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能识别这个箭头按钮

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

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <menu xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:app="http://schemas.android.com/apk/res-auto"
     4     >
     5     <!--<item android:title="first"-->
     6         <!--android:icon="@mipmap/ic_launcher_round"-->
     7         <!--app:showAsAction="ifRoom"-->
     8         <!--android:id="@+id/action_test">-->
     9         <!--<menu>-->
    10             <!--<group android:checkableBehavior="single">-->
    11                 <!--<item android:id="@+id/d"-->
    12                     <!--android:title="@string/test1"></item>-->
    13                 <!--<item android:id="@+id/f"-->
    14                     <!--android:title="@string/test1"></item>-->
    15             <!--</group>-->
    16         <!--</menu>-->
    17     <!--</item>-->
    18     <!--<item app:showAsAction="ifRoom|always"-->
    19         <!--android:title="dfsdfsd">-->
    20 
    21 
    22     <!--</item>-->
    23     <item android:id="@+id/action1" android:title="@string/font_size" app:showAsAction="always|withText" android:icon="@mipmap/ic_launcher_round">
    24         <menu> <!-- 定义一组单选菜单项-->
    25             <group android:checkableBehavior="single"> <!-- 定义多个菜单项-->
    26                 <item android:id="@+id/font_10" android:title="@string/font_10" />
    27                 <item android:id="@+id/font_12" android:title="@string/font_12" />
    28                 <item android:id="@+id/font_14" android:title="@string/font_14" />
    29                 <item android:id="@+id/font_16" android:title="@string/font_16" />
    30                 <item android:id="@+id/font_18" android:title="@string/font_18" />
    31             </group>
    32         </menu>
    33     </item> <!-- 定义一个普通菜单项-->
    34     <item android:id="@+id/action2" app:showAsAction="never" android:title="@string/plain_item">
    35     </item>
    36 
    37     <item android:id="@+id/action3" android:title="@string/font_color" app:showAsAction="never" android:icon="@mipmap/ic_launcher_round">
    38     <menu> <!-- 定义一个允许复选的菜单项-->
    39         <group> <!-- 定义三个菜单项-->
    40             <item android:id="@+id/red_font" android:title="@string/red_title" />
    41             <item android:id="@+id/blue_font" android:title="@string/blue_title" />
    42             <item android:id="@+id/green_font" android:title="@string/green_title" />
    43         </group>
    44     </menu>
    45     </item>
    46 </menu>

     

      1 package com.example.administrator.actionbar;
      2 
      3 import android.annotation.SuppressLint;
      4 import android.content.pm.ActivityInfo;
      5 import android.graphics.Color;
      6 import android.support.v4.view.MenuItemCompat;
      7 import android.support.v7.app.ActionBar;
      8 import android.support.v7.app.AppCompatActivity;
      9 import android.os.Bundle;
     10 import android.util.Log;
     11 import android.view.Menu;
     12 import android.view.MenuInflater;
     13 import android.view.MenuItem;
     14 import android.view.View;
     15 import android.widget.TextView;
     16 import android.widget.Toast;
     17 
     18 public class MainActivity extends AppCompatActivity {
     19 
     20     ActionBar actionBar;
     21     TextView textView;
     22     @Override
     23     protected void onCreate(Bundle savedInstanceState) {
     24         super.onCreate(savedInstanceState);
     25         //设置横屏
     26         //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
     27         setContentView(R.layout.activity_main);
     28         actionBar = getSupportActionBar();
     29         Log.v("z",getSupportActionBar()+"");
     30         actionBar.setDisplayShowHomeEnabled(false);
     31         actionBar.setHomeButtonEnabled(true);
     32         actionBar.setDisplayHomeAsUpEnabled(true);
     33         textView = (TextView)findViewById(R.id.tv_txt);
     34         registerForContextMenu(textView);
     35 
     36 
     37     }
     38 
     39     /** * 加载菜单 * * @param menu * @return */
     40     @Override public boolean onCreateOptionsMenu(Menu menu)
     41     {
     42         MenuInflater inflater = new MenuInflater(this); //装填R.menu.my_menu对应的菜单,并添加到menu中
     43         inflater.inflate(R.menu.actionbar, menu);
     44         //重要代码,使菜单不在overflow中显示
     45         MenuItemCompat.setShowAsAction(menu.findItem(R.id.action1),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
     46         MenuItemCompat.setShowAsAction(menu.findItem(R.id.action2),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
     47         MenuItemCompat.setShowAsAction(menu.findItem(R.id.action3),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
     48         return super.onCreateOptionsMenu(menu);
     49     }
     50 
     51 
     52     @Override
     53     public boolean onOptionsItemSelected(MenuItem item) {
     54         if(item.isCheckable())
     55         {
     56             item.setChecked(true);
     57         }
     58             switch (item.getItemId()){
     59                 case R.id.font_10:
     60                     textView.setTextSize(10*2);
     61                 case R.id.font_12:
     62                     textView.setTextSize(12 * 2);
     63                     item.setChecked(true);
     64                     break;
     65                 case R.id.font_14:
     66                     textView.setTextSize(14 * 2);
     67                     item.setChecked(true);
     68                     break;
     69                 case R.id.font_16:
     70                     textView.setTextSize(16 * 2);
     71                     item.setChecked(true);
     72                     break;
     73                 case R.id.font_18:
     74                     textView.setTextSize(18 * 2);
     75                     item.setChecked(true);
     76                     break;
     77                 case R.id.red_font:
     78                     textView.setTextColor(Color.RED);
     79                     item.setChecked(true);
     80                     break;
     81                 case R.id.blue_font:
     82                     textView.setTextColor(Color.BLUE);
     83                     item.setChecked(true);
     84                     break;
     85                 case R.id.action2:
     86                     Toast.makeText(this,"普通菜单",Toast.LENGTH_SHORT).show();
     87                     break;
     88                 case android.R.id.home:
     89                     Toast.makeText(this,"jiantoubeidianjil",Toast.LENGTH_SHORT).show();
     90                     break;
     91             }
     92 
     93 
     94 
     95         return super.onOptionsItemSelected(item);
     96     }
     97     /** * 上下文菜单中菜单项被单击时触发该方法 * * @param item * @return */
     98     @Override
     99     public boolean onContextItemSelected(MenuItem item)
    100     { //勾选该菜单项
    101          item.setChecked(true);
    102         switch (item.getItemId())
    103         {
    104             case R.id.red:
    105             item.setChecked(true);
    106                 textView.setBackgroundColor(Color.RED);
    107                 break;
    108             case R.id.green:
    109                 item.setChecked(true);
    110                 textView.setBackgroundColor(Color.GREEN);
    111                 break;
    112             case R.id.blue:
    113                 item.setChecked(true);
    114                 textView.setBackgroundColor(Color.BLUE);
    115                 break;
    116         }
    117         return true;
    118     }
    119 
    120     //    @SuppressLint("NewApi")
    121 //    @Override
    122 //    protected void onStart() {
    123 //
    124 //        super.onStart();
    125 //        //获取Actionbar
    126 //
    127 //        actionBar.setDisplayHomeAsUpEnabled(true);
    128 //    }
    129 //    @SuppressLint("NewApi")
    130 //    @Override
    131 //    public boolean onCreateOptionsMenu(Menu menu) {
    132 //        //资源文件添加菜单
    133 //        new MenuInflater(this).inflate(R.menu.actionbar, menu);
    134 //        //代码添加菜单
    135 //        MenuItem item=menu.add("分享(动态添加)");
    136 //        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
    137 //                MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    138 //        item.setIcon(android.R.drawable.ic_menu_share);
    139 //
    140 //
    141 //
    142 //        return super.onCreateOptionsMenu(menu);
    143 //    }
    144     public void hideActionBar(View view)
    145     {
    146         actionBar.hide();
    147     }
    148     public void showActionBar(View view)
    149     {
    150         actionBar.show();
    151     }
    152 }
  • 相关阅读:
    Sqlserver根据条件去除重复数据并且留下的是最大值数据
    C# Linq及Lamda表达式实战应用之 GroupBy 分组统计
    MVVM模式WPF的ComboBox数据绑定,使用Dictionary作为数据源
    C# System.Timers.Timer定时器的使用和定时自动清理内存应用
    SQL优化策略
    只要不放弃,总有出头之路
    2 Python基础
    4 动态库和静态库
    1 VS常用快捷键
    2 C语言环境、编译
  • 原文地址:https://www.cnblogs.com/xiaochenztx/p/8512512.html
Copyright © 2011-2022 走看看