文档章节

ActionBar(菜单活动栏)一些常用属性基本使用

初来小修
 初来小修
发布于 2016/02/03 17:52
字数 691
阅读 23
收藏 0

pullList属性使用效果图示例:


//不用布局


//MainActivity 类

代码


public class MainActivity extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//===============pullList的使用============================

ActionBar actionBar = getActionBar();

//设置ActionBar的类型

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

//添加需要的数据

final List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();

Map<String, String> optionMap1 = new HashMap<String, String>();

optionMap1.put("option", "首页");

Map<String, String> optionMap2 = new HashMap<String, String>();

optionMap2.put("option", "下页");

Map<String, String> optionMap3 = new HashMap<String, String>();

optionMap3.put("option", "上页");


dataList.add(optionMap1);

dataList.add(optionMap2);

dataList.add(optionMap3);

//自定义适配器

SimpleAdapter adapter = new SimpleAdapter(this, dataList, android.R.layout.simple_list_item_1, new String[]{"option"}, new int[]{android.R.id.text1});

//actionBar事件监听

//onNavigationItemSelected方法监听 

actionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() {

@Override

public boolean onNavigationItemSelected(int itemPosition, long itemId) {

Toast.makeText(MainActivity.this, "这是" + dataList.get(itemPosition).get("option"), 100).show();

return false;

}

});

}

}



===================================================

//需要实现的功能:在ActionBar栏中放一些Android系统自定义图标

//其中有返回 -- 点击返回  直接返回到原来的界面

//有个选择菜单 选中弹出


效果图示例:




//返回的箭头图标自己找个放入res/drawable下

1、创建一个菜单文件menu在res里

菜单布局 actionbar_menu.xml 

代码


<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<!-- 系统自带的图标 -->

    <item

        android:id="@+id/actionbar_call"

        android:icon="@android :drawable/ic_menu_call"

        android:orderInCategory="1"

        android:showAsAction="always"

        android:title=""/>

    <item

        android:id="@+id/actionbar_camera"

        android:icon="@android:drawable/ic_menu_camera"

        android:orderInCategory="2"

        android:showAsAction="always"

        android:title=""/>

    <item

        android:id="@+id/actionbar_share"

        android:icon="@android:drawable/ic_menu_share"

        android:orderInCategory="3"

        android:showAsAction="always"

        android:title=""/>

   <!-- 自定义的图标   actionViewClass 引号里面放的是要定义的控件类型的包名--> 

     <item

        android:id="@+id/actionbar_more"

        android:showAsAction="always"

        android:actionViewClass="android.widget.ImageView"

        android:title=""/>


</menu>


============================


2、MainActivity 类


代码


public class MainActivity extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取ActionBar

ActionBar actionBar = getActionBar();

//设置自定义的图标可以点击

actionBar.setHomeButtonEnabled(true);

actionBar.setIcon(R.drawable.ie_arrow_normal);

actionBar.setTitle("返回");

}

//1、创建一个选择菜单

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.actionbar_menu, menu);

//在下面设置自定义的图标

MenuItem item_menu = menu.findItem(R.id.actionbar_more);//找到菜单布局里自定义的图标名字

ImageView imageview = (ImageView) item_menu.getActionView();

imageview.setImageResource(R.drawable.skin_aio_more_nor);

//图标的事件监听

imageview.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//创建一个popMenu弹出菜单

PopupMenu popMenu = new PopupMenu(MainActivity.this, v);

//设置菜单的选项

popMenu.getMenu().add(Menu.NONE, 1, Menu.NONE, "分享");

popMenu.getMenu().add(Menu.NONE, 2, Menu.NONE, "扫一扫");

popMenu.getMenu().add(Menu.NONE, 3, Menu.NONE, "摇一摇");

//菜单选项的事件监听

popMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {

@Override

public boolean onMenuItemClick(MenuItem item) {

switch(item.getItemId()){

case 1:

Toast.makeText(MainActivity.this, "分享", 100).show();

break;

case 2:

Toast.makeText(MainActivity.this, "扫一扫", 100).show();

break;

case 3:

Toast.makeText(MainActivity.this, "摇一摇", 100).show();

break;

}

return false;

}

});

popMenu.show();//显示弹出的菜单

}

});

return super.onCreateOptionsMenu(menu);

}

//选择菜单的事件监听

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){

case R.id.actionbar_call:

Toast.makeText(this, "打电话", 100).show();

break;

case R.id.actionbar_camera:

Toast.makeText(this, "照相", 100).show();

break;

case R.id.actionbar_share:

Toast.makeText(this, "分享", 100).show();

break;

case android.R.id.home://返回的图标

Intent intent = new Intent(this,MainActivity.class);

//这里用addFlags方法

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

Toast.makeText(this, "返回成功!", 100).show();

break;

}

return super.onOptionsItemSelected(item);

}

}


© 著作权归作者所有

初来小修
粉丝 4
博文 117
码字总数 80711
作品 0
广州
私信 提问
Android UI开发第二十四篇——Action Bar

Android UI开发第二十四篇——Action Bar 标签: ActionBarandroidfragmentmenu 2012-10-31 16:11 143916人阅读 评论(29) 收藏 举报 分类: 上图中: logo title icon 目录(?)[+] Action bar...

微笑的江豚
2016/04/07
61
0
Android 之 Material Design(三)—DrawerLayout+NavigationView+Toolbar(点击icon打开关闭侧滑菜单)

前言 关于Material Design相关的控件,前两篇文章已经介绍了一些常用的控件了,这篇文章主要介绍一下DrawerLayout+NavigationView+Toolbar。这样Material Design的也介绍的差不多了,剩下Rec...

AFinalDream
2017/06/22
0
0
Toolbar的详细介绍和自定义Toolbar

在此总结一下,Android Toolbar 控件的使用方法,争取总结的系统全面些。之前也只是停留在一些基本简单的用法,而且也不系统。希望爱学习的你能通过这篇文章,有所收获! Toolbar 的基本用法...

猴亮屏
2018/08/10
0
0
Android ActionBar详解

关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar...

恰同学少年
2015/08/03
0
0
Toolbar的详细使用

Toolbar是作为5.0之后替代ActionBar的一个控件,平时也是会经常的使用toolbar这个东西,但是也只是基本的使用,太深入详细的功能也没有去尝试,最近抽时间做了一个详细的学习整理,做一个记录. 简...

大灰鸡
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里P7架构师:这些技术点没搞懂,我劝你不要跳槽!

阿里P7架构师架构师:这些技术点没搞懂,我劝你不要跳槽! 哪些技术点呢? 废话不多说,技术点全在下面这6张图里面了! 1.怎么看源码? 2.分布式 3.微服务 4.性能优化 5.工程化 粉丝福利:一...

别打我会飞
19分钟前
2
0
易错题

architect刘源源
24分钟前
1
0
使用Json4s 将带有Timestamp的对象转json时 变为所在时区

在有Timestamp属性的对象转json时 最后出来的时间会减小8小时,是因为变成了0时区,需要将隐式转换中添加设置本地时区 import org.json4s.{DefaultFormats, Formats}import org.json4s.jac...

可达鸭Go
25分钟前
1
0
工作六年java程序员的工作感悟,带你走出迷茫

前言 很多年前,刚刚从大学毕业的时候,很多公司来校招。其中最烂俗的一个面试问题是:“你希望你之后三到五年的发展是什么?”。我当时的标准回答是(原话):“成为在某一方面能够独当一面...

java知识分子
30分钟前
1
0
jenkins邮箱发送失败以及解决方案

jenkins邮箱设置报错以及解决方案 Jenkins邮箱设置 我用了 Email Extended Plugin这个插件,这个插件会有更加丰富的邮件内容,建议添加。 1.安装 Email Extended Plugin 2.系统管理-系统设置...

shzwork
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部