AndroidGUI12:ContextMenu的常用技巧
来源:互联网 发布:下载拼音打字软件 编辑:程序博客网 时间:2024/06/05 03:56
ContextMenu 实现了Menu接口。当在某个View上长按时,就可以让ContextMenu出现。
ContextMenu的Item不支持Icon。
1. 创建一个Android Project,修改缺省的main.xml,使之如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
>
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format="%s"
android:textSize="80px"
android:textColor="#FFFF00"
/>
</LinearLayout>
2. 创建一个context_menu.xml文件,用作菜单资源:
点击Finish按钮,编辑context_menu.xml,使其内容如下:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/timer_start"
android:title="开始计时"
/>
<item
android:id="@+id/timer_stop"
android:title="终止计时"
/>
<item
android:id="@+id/timer_reset"
android:title="清零"
/>
</menu>
3. 把需要用到的图标compass.png,拖入到Eclipse项目中的res/drawable-mpdi文件夹下。
4. 编写Activity对应的代码如下:
public class ControlContextMenu extends Activity
{
private Chronometer timer;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获得计时器对象
timer = (Chronometer)this.findViewById(R.id.chronometer);
// 使得用户长按计时器时,可以出现ContextMenu
this.registerForContextMenu(timer);
}
// alt+Shift+S重写onCreateContextMenu:创建ContextMenu
@Override
public void onCreateContextMenu(ContextMenu menu,View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
// ContextMenu的Item不支持Icon,所以不用再资源文件中,为它们设定图标
if(v.getId() == R.id.chronometer)
{
this.getMenuInflater().inflate(R.menu.context_menu, menu); // 读取资源,并创建菜单项
menu.setHeaderIcon(R.drawable.compass); // 设定头部图标
menu.setHeaderTitle("计时器控制选项"); // 设定头部标题
}
}
// alt+Shift+S重写onContextItemSelected:ContextMenu中的菜单项对应的代码
@Override
public boolean onContextItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.timer_start:
timer.setBase(SystemClock.elapsedRealtime()); // 将chronometer的显示清零
timer.start(); // 然后开始计时
break;
case R.id.timer_stop:
timer.stop();
break;
case R.id.timer_reset:
timer.setBase(SystemClock.elapsedRealtime()); // 将chronometer的显示清零
break;
}
return super.onContextItemSelected(item);
}
}
4. 运行结果
长按计时器后,会出现ContextMenu如下:
选中其中的一个菜单项,就可以进行相应的工作。
- AndroidGUI12:ContextMenu的常用技巧
- Andriod常用Menu之一:ContextMenu
- WPF ContextMenu的使用
- ContextMenu的使用
- android的ContextMenu
- ContextMenu的自定义
- Android ContextMenu的使用
- ContextMenu的使用
- ContextMenu的使用详解
- ContextMenu的简单使用
- ContextMenu的使用
- ContextMenu
- ContextMenu
- ContextMenu
- ContextMenu
- contextmenu
- ContextMenu
- ContextMenu
- silktest的一些tips
- apache+openssl
- 函数发生器程序
- 关于xerces解析中文的问题
- 自动分词算法的分类
- AndroidGUI12:ContextMenu的常用技巧
- CPLD/FPGA/Verilog_Verilog中阻塞与非阻塞的区别
- 重叠硬币覆盖桌面问题
- 一个简单的串口封装类
- HashSet(overwrite hashcode、equals方法、源码)
- 修改注册表添加IE信任站点及启用Activex控件
- 毕业好麻烦
- 搜索引擎技术揭密:中文分词技术
- MVC验证码