Android学习笔记(六)响应系统设置事件
来源:互联网 发布:caxa运动仿真软件 编辑:程序博客网 时间:2024/04/29 19:06
configuration类
Configuration类专门用于描述手机设备上的配置信息,这些配置信息即包括用户特定的配置项,也包括系统的动态设备配置。程序可调用Activity的如下方法来获取系统的Configuration对象
Configuration cfg=getResources().getConfiguration();
实例代码
1)MainActivity类
public class MainActivity extends ActionBarActivity {// 获取系统的Configuration对象// 调用Configuration对象的属性来获取设备的状态EditText ori;EditText navigation;EditText touch;EditText mnc;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ori = (EditText) findViewById(R.id.ori);navigation = (EditText) findViewById(R.id.navigation);touch = (EditText) findViewById(R.id.touch);mnc = (EditText) findViewById(R.id.mnc);Button bn = (Button) findViewById(R.id.bn);bn.setOnClickListener(new OnClickListener() {// 为按钮注册事件监听器@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// 获取系统的configuration对象Configuration cfg = getResources().getConfiguration();String screen = cfg.orientation == Configuration.ORIENTATION_LANDSCAPE ? "横向屏幕": "竖向屏幕";//MNC为网络id,由2位数字组成, //用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;String mncCode = cfg.mnc + " ";String naviName = cfg.orientation == Configuration.NAVIGATION_NONAV ? "没有方向控制": cfg.orientation == Configuration.NAVIGATION_WHEEL ? "滚轮控制方向": cfg.orientation == Configuration.NAVIGATION_DPAD ? "方向键控制方向": "轨迹球控制方向";navigation.setText(naviName);String touchName=cfg.touchscreen==Configuration.TOUCHSCREEN_NOTOUCH?"无法触摸":"支持触摸屏";ori.setText(screen);mnc.setText(mncCode);touch.setText(touchName);}});}}
2)布局xml文件配置
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" ><EditText android:id="@+id/ori" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" /><EditText android:id="@+id/navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" /><EditText android:id="@+id/touch" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" /><EditText android:id="@+id/mnc" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" /><Button android:id="@+id/bn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="click me" /></LinearLayout>
3)运行结果
重写onConfigurationChanged响应系统设置更改
如果程序需要监听系统设置的更改,则可以考虑重写Activity的onConfigurationChanged(Configuration newConfig)方法,该方法是一个基于回调的事件处理方法,当系统设置发生更改,该方法会被自动触发。
实例
当屏幕方向发生改变时,修改EditText中的值,并弹出提示框显示屏幕方向修改
1)在上述MainActivity中添加onConfigurationChanged回调方法。
//重写该方法,用于监听系统设置的更改,主要是监控屏幕方向的更改@Overridepublic void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);String screen=newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE?"横向屏幕":"竖向屏幕";Log.d("screen","onconfigurationchanged");ori.setText(screen);Toast.makeText(this, "系统方向发生改变"+"\n修改后的屏幕方向为:"+screen, Toast.LENGTH_LONG).show();}}
2)在Manifest.xml文件中设置Activity可以监听屏幕方向发生改变的事件
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity <span style="color:#FF6666;">android:configChanges="orientation|screenSize"</span> android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>运行结果:
0 0
- Android学习笔记(六)响应系统设置事件
- android系统学习笔记六
- Android 事件处理详解(三) —— 响应系统设置的事件[Configuration]
- 响应的系统设置事件
- android之响应的系统设置的事件
- Android之响应的系统设置的事件
- android之响应的系统设置的事件
- Android讲义3---第三章---响应系统设置的事件
- Cocos2d-x学习笔记(九)—— 地图系统(地图编辑器,事件响应)
- android系统菜单响应事件
- .NET学习笔记(六) ------事件
- Qt学习笔记(六) 事件处理
- android学习笔记之基本事件的响应
- Android学习笔记:(一)设置Button的点击事件
- Android学习笔记(六)
- android学习笔记(六)
- Android学习笔记(六)
- Android学习笔记(六)
- jquery 事件重复
- [转]使用window.open替代window.ShowModalDialog,完成子页面和父页面之间的传值
- LeetCode索引
- centos7 通过kvm+vnc 实现远程桌面虚拟化和创建windows、Linux虚拟机
- PullZoomView
- Android学习笔记(六)响应系统设置事件
- 【绿皮】新GRE填空补充练习题Exercise2
- vc透明对话框
- Ubuntu遇到依赖问题
- linux php下Ajax请求时URL路径出现重复
- 解决Unable to resolve target 'android-7'报错
- 自定义Loading的动态效果
- (android之layout)性能优化之布局优化
- 24位真彩色图高斯模糊(VC++)