本人使用魅族MX2 今天下午调了一个下午的bug 由于未知原因option menu 嵌套进Tab layout 无法显示menu键
其实在原生安卓上是正常的
而option menu单独使用 不嵌套进Tab layout也是正常的
代码延续上一篇的
只是在ImgActivity中override了onTouchEvent,onCreateMenu 和onOptionsItemSelected
optionMenu部分
private static final String TAG = "com.example.hw2"; private static final int OPTION1 = 1; private static final int OPTION2 = 2; private static final int OPTION3 = 3; private static final int OPTION4 = 4; private static final int OPTION5 = 5; private static final int OPTION6 = 6; /* Creates the menu items */ public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, OPTION1, Menu.NONE, "Bookmark").setIcon(android.R.drawable.ic_menu_agenda); menu.add(Menu.NONE, OPTION2, Menu.NONE, "Save").setIcon(android.R.drawable.ic_menu_save); menu.add(Menu.NONE, OPTION3, Menu.NONE, "Search").setIcon(android.R.drawable.ic_menu_search); menu.add(Menu.NONE, OPTION4, Menu.NONE, "Share").setIcon(android.R.drawable.ic_menu_share); menu.add(Menu.NONE, OPTION5, Menu.NONE, "Delete").setIcon(android.R.drawable.ic_menu_delete); menu.add(Menu.NONE, OPTION6, Menu.NONE, "Preferences").setIcon(android.R.drawable.ic_menu_preferences); return true; } /* Handles item selections */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case OPTION1: Toast.makeText(getApplicationContext(), "Bookmark is selected", Toast.LENGTH_SHORT).show(); Log.i(TAG, "----------- Option 1 selected"); return true; case OPTION2: Toast.makeText(getApplicationContext(), "Save is selected", Toast.LENGTH_SHORT).show(); Log.i(TAG, "----------- Option 2 selected"); return true; case OPTION3: Toast.makeText(getApplicationContext(), "Search is selected", Toast.LENGTH_SHORT).show(); Log.i(TAG, "----------- Option 3 selected"); return true; case OPTION4: Toast.makeText(getApplicationContext(), "Share is selected", Toast.LENGTH_SHORT).show(); Log.i(TAG, "----------- Option 4 selected"); return true; case OPTION5: Toast.makeText(getApplicationContext(), "Delete is selected", Toast.LENGTH_SHORT).show(); Log.i(TAG, "----------- Option 5 selected"); return true; case OPTION6: Toast.makeText(getApplicationContext(), "Preferences is selected", Toast.LENGTH_SHORT).show(); Log.i(TAG, "----------- Option 6 selected"); return true; } return false; }
OnTouchEvent部分
这部分参照了 http://www.ourunix.org/android/post/82.html 多谢多谢!
@Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub int touchEvent = event.getAction(); switch(touchEvent){ case MotionEvent.ACTION_DOWN: openOptionsDialog() Log.i(TAG, "MotionEvent.Action_down!!"); break; default: break; } return super.onTouchEvent(event); } private void openOptionsDialog(){ new AlertDialog.Builder(ImgActivity.this) .setTitle("Save File...") .setIcon(android.R.drawable.ic_menu_save) .setMessage("Do you want to save this file?").setPositiveButton("YES", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .setNegativeButton("NO", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .setNeutralButton("CANCEL", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .show(); }
之前一直不知道Log和TAG是做什么用的,现在终于知道了:在runtime的时候,在logcat中用的,Log.i可以用来debug
相关推荐
`onInterceptTouchEvent`和`onTouchEvent`是两个关键的方法,它们协同工作以处理触摸屏幕的动作。这篇文章将深入探讨这两个方法的调用关系及其在Android事件分发机制中的作用。 首先,我们要理解Android的事件分发...
在Android开发中,理解和掌握`onInterceptTouchEvent`与`onTouchEvent`的调用时序至关重要,因为它们是实现触摸事件处理的关键。这两个方法都属于Android的触摸事件处理机制,涉及到了ViewGroup与子View之间的事件...
`onInterceptTouchEvent`和`onTouchEvent`是两个核心的方法,它们共同决定了Android应用如何响应用户的触摸操作。这两个方法主要在ViewGroup(如布局)和View(如按钮、文本框等)中被使用。 首先,我们来理解`...
`onInterceptTouchEvent`和`onTouchEvent`是两个至关重要的方法,它们共同构成了Android视图层次结构中的触摸事件分发机制。下面我们将深入探讨这两个方法的用法及其在实际开发中的应用场景。 1. `...
在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouchEvent` 和 `onInterceptTouchEvent` 是处理这些事件的两个重要方法。本文将深入探讨这两个方法的使用、顺序以及它们在Android事件分发机制中的角色...
综上所述,这个博客园项目通过重写`onTouchEvent`实现了滑动显示菜单的功能,同时结合了缓存和数据库存储技术,提升了用户体验。项目中还可能涉及到布局管理、手势识别、动画效果等多个Android开发的关键知识点。
`onTouch`和`onTouchEvent`是两个与触摸事件紧密相关的函数,它们都在处理用户的触摸输入。本文将深入解析这两个函数的工作原理及其在事件传递链中的角色。 1. **onTouch()**: `onTouch`方法是`View`类的`...
为了实现上下左右滑动,我们需要在`onTouchEvent`中捕获ACTION_DOWN和ACTION_MOVE事件,并记录初始触点位置和后续移动的位置。以下是关键步骤: 1. **初始化状态**:在ACTION_DOWN事件中,获取当前触摸点的坐标(x1...
`onInterceptTouchEvent`和`onTouchEvent`是两个关键的方法,它们共同构成了Android事件分发机制的核心。 `onInterceptTouchEvent`方法在ViewGroup中定义,它的主要作用是拦截事件流,即决定事件是否由父视图处理,...
这篇博客“2011.08.30——— android setOnTouchListener onTouchEvent”主要探讨了如何在Android应用中处理触摸事件,尤其是通过`setOnTouchListener`和`onTouchEvent`方法。下面将详细解析这两个方法的工作原理...
我们也许会遇到,自定义控件的触屏事件处理,先来了解一下View类中的,onTouch事件和onTouchEvent事件。 1、boolean onTouch(View v, MotionVent event) 触摸事件发送到视图时调用(v:视图,event:触摸事件) 返回...
在描述中提到的博客链接(由于无法直接访问,以下内容基于一般知识推测)很可能详细解释了如何重写`onInterceptTouchEvent`和`onTouchEvent`来实现自定义的事件分发逻辑。这可能包括了如何在仿ViewPager中判断滑动...
本文将深入探讨Android事件模型,特别是`onTouchEvent`和`interceptTouchEvent`的关系,帮助开发者更好地理解这两个方法如何协同工作以实现复杂的触摸事件处理。 首先,Android事件模型基于触摸事件的分发机制,它...
`OnTouchEvent`是我们处理触摸事件的主要接口,这个压缩包`OnTouchEvent.rar`很可能包含了演示如何在Android应用中实现事件分发的示例代码和流程图。下面,我们将深入探讨Android事件分发机制以及`OnTouchEvent`方法...
`OnTouchEvent`是`View`接收触摸输入的主要方法,而`onClick`、`onLongClick`和左右移动事件则是在用户与界面交互时的常见操作。下面将详细介绍如何在`OnTouchEvent`中有效地处理这些事件。 首先,`onClick`事件...
在Android开发中,触摸事件的处理是用户交互的基础,而`onTouchEvent`和`onInterceptTouchEvent`则是处理这些事件的关键方法。这篇文章将深入解析这两个方法的区别和它们在触摸事件处理链中的作用。 首先,`...
Radial Menu Widget是一种在Android平台上实现的独特用户界面组件,它以圆形布局展示菜单项,提供了一种富有创意和直观的交互方式。这种设计通常用于工具栏或者设置菜单,因为其节省空间并能吸引用户的注意力。在...