1、弹出菜单项的用法例子
// 重写方法 点击菜单 弹出的菜单项的设置
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, Config_constant.MENU_EXIT, 0, "退出")
.setIcon(R.drawable.exit);
return super.onCreateOptionsMenu(menu);
}
// 用户点击菜单选项触发的事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case Config_constant.MENU_EXIT: //按下退出菜单选项
new AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("确认退出吗?")
.setIcon(R.drawable.alert_icon)
.setPositiveButton(
"确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
android.os.Process.killProcess(android.os.Process.myPid()); //结束进程 退出程序
TabDemoActivity.this.finish();
}
})
.setNegativeButton(
"取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {}
})
.show();
break;
}
return super.onOptionsItemSelected(item);
}
分享到:
相关推荐
重写View通常涉及继承一个已有的View类,并覆盖其方法以实现自定义功能。 一、创建自定义View 1. 创建一个新的Java类,继承自Android的View类或其子类,例如TextView、Button等。 2. 在构造函数中,调用super()方法...
本文将深入探讨如何在Android中创建自定义组合控件以及重写现有控件,并通过具体例子源码来帮助初学者理解这一过程。 首先,让我们了解什么是自定义View。在Android中,我们通常使用的诸如Button、TextView等都是...
Android控件是基于Java语言的,我们可以通过继承已有的View或ViewGroup类来创建新的自定义控件。例如,如果要重写Button,我们可以这样做: ```java public class CustomButton extends Button { // 在这里添加新...
这个压缩包包含了关于如何在Android应用中重写`onKeyDown`方法的源码示例,这对于理解Android事件处理机制非常有帮助。下面将详细解释`onKeyDown`方法以及它在用户界面中的作用。 `onKeyDown`是Android系统提供的一...
1. 创建一个新的Java类,继承自View或已有的View子类(如Button、ImageView等)。 2. 重写构造函数,通常会需要在构造函数中设置初始化参数。 3. 实现onDraw()方法,这是绘制View的核心,通过Canvas对象进行图形绘制...
这个小例子展示了如何在Android应用中集成和使用`Gallery`控件,以实现一个可滚动的图片画廊功能。下面我们将深入探讨`Gallery`的相关知识点。 1. **Gallery控件介绍** `Gallery`是Android SDK中的一个...
适配器继承自Android的BaseAdapter类,或者使用已有的Adapter如ArrayAdapter、SimpleAdapter等。适配器的主要职责是获取数据并将其转化为ListView中的列表项View。这涉及到以下方法: 1. `getCount()`: 返回列表项...
2. 实现接口:然后,我们在需要接收回调的类中实现这个接口,重写接口中的方法。 3. 注册回调:在发起异步操作的类(如AsyncTask、BroadcastReceiver等)中,我们将实现了接口的对象作为参数传递,进行注册,这样在...
这时,我们需要创建一个继承自BaseAdapter或已有的Adapter(如SimpleAdapter、CursorAdapter等)的自定义适配器,重写其中的`getView()`方法,以便根据每个条目的数据来动态生成和配置视图。 2. **自定义布局**:每...
为了实现自动轮播,我们需要对`ViewPager`进行扩展或者使用已有的库,如`AutoScrollViewPager`(对应压缩包中的`Auto_ViewPage`可能就是这个库)。`AutoScrollViewPager`可以设置自动滚动间隔,定期切换到下一个广告...
在实际应用中,我们还需要考虑性能优化,例如通过convertView参数在`getView()`方法中复用已有的视图,避免频繁创建新对象。同时,如果数据源较大,可以使用AsyncTask或者Loader来异步加载数据,以防止阻塞主线程。 ...
在现代的Android Studio中,它们已被`.idea`目录和Gradle配置文件所取代,但这里它们仍然显示了项目在Eclipse环境中的设置。 2. `project.properties`:这是一个旧版的Android项目配置文件,用来指定目标API级别和...
2. **画布操作**:在onDraw()方法中,通过Canvas的drawCircle()方法绘制圆形基础,然后根据进度百分比来绘制已填充的部分。可能还会使用arcTo()方法来绘制弧形部分,表示进度。 3. **Paint属性**:Paint对象用于...
瀑布流布局,又称为瀑布流式布局或无限滚动布局,是一种在Android应用中常见的界面设计方式,尤其在图片浏览、电商商品展示等...开发者可以根据项目需求和自身技术背景选择合适的方法,或者利用已有的成熟解决方案。
对于简单的自定义需求,XML绘制或使用已有的库可能更为便捷;而对于复杂或者高度定制的需求,编写自定义View类则能提供更大的灵活性。无论哪种方式,都要确保代码的可读性和可维护性,以便于后续的迭代和扩展。 ...
2. 对已有Layout的扩展:有时候我们可能需要在已有的布局上添加额外功能。例如,为TableLayout添加特定行为,或者利用百分比支持库中的PercentFrameLayout实现按比例的布局。 接下来,我们关注自定义ViewGroup的...
在Android中,自定义控件是指开发者通过继承已有的View或ViewGroup,然后在其基础上添加新的功能或改变其外观,以满足特定需求的控件。在这个例子中,我们将几个原生的控件组合在一起,形成一个全新的控件,这样不仅...
在`getView()`方法中,通常你会使用convertView参数来复用已有的视图,减少对象创建,提高性能。如果没有可复用的视图,那么需要创建新的View并填充数据。 接下来,我们看看SimpleAdapter。SimpleAdapter是预定义的...
然而,有时我们可能需要在一个已有的ScrollView中添加一个可以独立滚动的部分,例如一个横向的ViewPager或另一个ScrollView,这时就需要进行嵌套。 嵌套ScrollView的关键在于正确处理滚动事件。由于两个ScrollView...
注册一个`PhoneStateListener`,并重写`onCallStateChanged()`方法,可以得知电话的状态(如挂断、拨打、接听等)。 ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context....