开机5秒内,点击空白区域显示某应用程序,5秒内若无任何操作,点击功能将自动失效
2016-06-17 08:51
387 查看
最近在练习Demo,大家提的要求:
开机5秒内,点击空白区域显示某应用程序,5秒内若无任何操作,点击功能将自动失效
学个知识也是好的。问了网上大神,说:计数、空白区域。于是的于是,我就开始了敲码。。。。。。。。
.xml布局:(知识大概布局,看下框架就好了,里面具体的,自己设置哈。。看重点就好: android:id="@+id/areaPosition")
MenuFragmentApplication类:
AppAdapter类:
好了,以上就是这些,不是完整的代码,切勿照写,可以参考下思路:
1、计数:点击的次数,该Demo里5秒内点击4次,到第4次将显示某应用:
clickedNum == clickedMax 条件成立,即显示应用,并刷新界面;
2、空白区域:LinearLayout布局设置id,让LinearLayout持有监听事件。
3、5秒时间的设定:
通过Handler处理机制下的sendEmptyMessageDelayed(2, 5000);
里面的参数2表示:当Handler中的msg.what == 2时,执行下面的mAppAdapter.UnablerClicked = true事件;5000即是设定时间为5秒;
5秒时间到了,将结束执行Handler 下msg.what == 2的事件: removeMessages(2);
定义变量:private boolean isClicked = false;
当为true式则返回,不再执行
原谅我今天的不在状态吧,里面要是有些描述不当的地方,也希望大家指出,谢谢!
开机5秒内,点击空白区域显示某应用程序,5秒内若无任何操作,点击功能将自动失效
学个知识也是好的。问了网上大神,说:计数、空白区域。于是的于是,我就开始了敲码。。。。。。。。
.xml布局:(知识大概布局,看下框架就好了,里面具体的,自己设置哈。。看重点就好: android:id="@+id/areaPosition")
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:app="http://schemas.android.com" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/areaPosition" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/btn_app" android:layout_width="wrap_content" android:layout_height="wrap_content" > </Button> <TextView android:id="@+id/app_names" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
MenuFragmentApplication类:
private LinearLayout areaPosition; private int clickedNum = 0; private int clickedMax = 4; private int clickedMin = 0; public void onResume() { super.onResume(); RefreshAppList(); //开始计时:5秒内点击显示某应用 clickedNum = 0; if(mAppAdapter!=null){ mAppAdapter.startCaculateTime(); } } @Override public void onPause() { super.onPause(); //结束计时:5秒内点击显示某应用 mHandler_progress.removeMessages(2); } //刷新显示 private void RefreshAppList(){ //这里是刷新界面的方法,你们自己都有的..... } private List<PackageInfo> getAllApp(Context context) { //5秒内点击到第4下,显示某应用 if(clickedNum == clickedMax){ if (packageInfo.applicationInfo.packageName.equals("com.xxx.xxx")) { mPackageInfo.add(packageInfo); } } } private Handler mHandler_progress = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { RefreshAppList(); mAppAdapter.UpdateList(); }else if(msg.what == 2){ //UnableClicked mAppAdapter.UnablerClicked = true; } } };
AppAdapter类:
private boolean UnablerClicked = false; public void UpdateList() { //重新加载数据 RefreshData(); } // 重新加载数据 private void RefreshData() { notifyDataSetChanged(); } public void startCaculateTime(){ UnablerClicked = false; mHandler_progress.removeMessages(2); mHandler_progress.sendEmptyMessageDelayed(2, 5000); } public View getView(int position, View convertView, ViewGroup parent) { areaPosition = (LinearLayout)convertView.findViewById(R.id.areaPosition); areaPosition.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(UnablerClicked){ return; } if(clickedNum >= clickedMin && clickedNum <= clickedMax){ clickedNum = clickedNum + 1; Log.e(TAG, "clickedNum:"+ clickedNum); if(v.getId() == R.id.areaPosition){ if(clickedNum==4){ RefreshAppList(); UpdateList(); } } } } });}
好了,以上就是这些,不是完整的代码,切勿照写,可以参考下思路:
1、计数:点击的次数,该Demo里5秒内点击4次,到第4次将显示某应用:
clickedNum == clickedMax 条件成立,即显示应用,并刷新界面;
2、空白区域:LinearLayout布局设置id,让LinearLayout持有监听事件。
3、5秒时间的设定:
通过Handler处理机制下的sendEmptyMessageDelayed(2, 5000);
里面的参数2表示:当Handler中的msg.what == 2时,执行下面的mAppAdapter.UnablerClicked = true事件;5000即是设定时间为5秒;
5秒时间到了,将结束执行Handler 下msg.what == 2的事件: removeMessages(2);
定义变量:private boolean isClicked = false;
当为true式则返回,不再执行
原谅我今天的不在状态吧,里面要是有些描述不当的地方,也希望大家指出,谢谢!
相关文章推荐
- Android布局之LinearLayout线性布局
- Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解
- Android App中使用LinearLayout进行居中布局的实例讲解
- Android应用的LinearLayout中嵌套RelativeLayout的布局用法
- Android自定义控件LinearLayout实例讲解
- android LinearLayout 布局实例代码
- Android 布局控件之LinearLayout详细介绍
- Android应用借助LinearLayout实现垂直水平居中布局
- Android中LinearLayout布局的常用属性总结
- Android编程之线性布局LinearLayout实例简析
- Android布局之LinearLayout自定义高亮背景的方法
- Android布局控件之常用linearlayout布局
- Android App中的多个LinearLayout嵌套布局实例解析
- LinearLayout的weight属性的解释
- 安卓布局应用学习代码附带效果图
- 在LinearLayout中嵌套RelativeLayout来设置Button的位置(xml文件)
- LinearLayout 内部控件居中
- RelativeLayout 和LinearLayout比较小tip
- Android四种基本布局
- 关于Android的LinearLayout的addView方法解析