- 浏览: 1065585 次
- 性别:
- 来自: 南昌
文章分类
- 全部博客 (276)
- 生活 (1)
- 代码之美 (22)
- Media (7)
- Android Widget (3)
- Android Intent (1)
- Android Activity (4)
- UI event handle--UI事件处理机制 (2)
- Java基础知识 (12)
- android Databases (5)
- Android 系统知识 (70)
- 平常遇到的问题与解决方法 (38)
- Android TextView/EditView (2)
- Thinking Java (1)
- android webkit (6)
- JSON (1)
- XML (4)
- HTTP (1)
- Google Weather API (1)
- android 2.3 NFC (10)
- android app (20)
- android framework (7)
- C++ (2)
- android System (5)
- Pthread (1)
- Wifi (8)
- Unix/Linux C (8)
- Android 4.0 (1)
- Mail (1)
- Smack 源码学习 (4)
- iOS (4)
- Android (1)
- git (1)
- Gallery3d (2)
- React-Natice (1)
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
一般情况下,当键盘显示的时候,你按下back只会将键盘关掉,但有时候你想要不仅仅是把键盘关掉而已,还想把当前的activity/给关掉。那你可以重写你的activity的main view,下面的例子是我看QucikSearchBox ap中SearchActivityView.java。
监测到按下bakc key之后hideInputMethod();隐藏键盘activity.onBackPressed();关闭Activity.这样达到的效果是:但你在SearchActivity中按下bakc之后就会退出这个acitvity,不管键盘是否显示。
怎么会不和谐呢?怎样个不和谐呢?有这个KeyEvent.KEYCODE_BACK判断吗?
/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.quicksearchbox.ui; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.inputmethod.InputMethodManager; import android.widget.RelativeLayout; /** * Finishes the containing activity on BACK, even if input method is showing. */ public class SearchActivityView extends RelativeLayout { public SearchActivityView(Context context) { super(context); } public SearchActivityView(Context context, AttributeSet attrs) { super(context, attrs); } public SearchActivityView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } private Activity getActivity() { Context context = getContext(); if (context instanceof Activity) { return (Activity) context; } else { return null; } } /** * Hides the input method. */ protected void hideInputMethod() { InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(getWindowToken(), 0); } } /** * Overrides the handling of the back key to dismiss the activity. */ @Override public boolean dispatchKeyEventPreIme(KeyEvent event) { Activity activity = getActivity(); if (activity != null && event.getKeyCode() == KeyEvent.KEYCODE_BACK) { KeyEvent.DispatcherState state = getKeyDispatcherState(); if (state != null) { if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) { state.startTracking(event, this); return true; } else if (event.getAction() == KeyEvent.ACTION_UP && !event.isCanceled() && state.isTracking(event)) { hideInputMethod(); activity.onBackPressed(); return true; } } } return super.dispatchKeyEventPreIme(event); } }
监测到按下bakc key之后hideInputMethod();隐藏键盘activity.onBackPressed();关闭Activity.这样达到的效果是:但你在SearchActivity中按下bakc之后就会退出这个acitvity,不管键盘是否显示。
评论
2 楼
追求幸福
2011-12-05
pc0de 写道
谢谢分享啊 不过用你的方法除了点问题 我是重写的EditText 然后输入其它按键的时候 就变得很不河蟹了。
怎么会不和谐呢?怎样个不和谐呢?有这个KeyEvent.KEYCODE_BACK判断吗?
1 楼
pc0de
2011-12-02
谢谢分享啊 不过用你的方法除了点问题 我是重写的EditText 然后输入其它按键的时候 就变得很不河蟹了。
发表评论
-
ContentProvider --Call方法
2018-04-03 16:43 3767很早之前接触ContentProvider知道它提供的方法就是 ... -
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a read
2015-11-27 14:50 2954android.database.sqlite.SQLiteR ... -
形成一个Resource Uri
2011-02-28 09:51 2967形成一个Resource Uri: public Uri ... -
getStringArray
2011-02-26 11:25 4220将String集放在String的resource里面:(Qu ... -
如何让你的list不被修改
2011-02-25 16:52 1485今天在看QuickSearchBox的源码:发现了可以对lis ... -
R.bool.use_32bit
2011-02-09 16:49 1964很久没有写新的文章,自己懒了吧,没了动力。今天还是耐住了惰性, ... -
让class只有一个实例的例子
2010-10-25 16:49 1808最近在学习android 的webkit,看到一些自己认为是好 ... -
滚动 TextView
2010-04-16 11:39 1297http://bbs.lupa.gov.cn/home/spa ... -
查询Internal 或External的容量
2010-04-14 21:04 1245我们可通过StatF来查询Internal或External的 ... -
关闭android程序
2010-03-17 17:17 1659转自:http://mingkg21.iteye.com/bl ... -
自定义android Intent Action与继承TextView形成一个动态改变text的View
2010-03-12 17:35 4711//Activity package com.android. ... -
Java Formatter
2010-03-09 20:33 1704摘自:http://hi.baidu.com/banseon/ ... -
获得手机系统设置的区域
2010-03-09 19:45 2019通过Locate这个类,我们可以获得手机系统设置的区域: ja ... -
关于android获得图片的总结
2010-03-08 14:50 63721,已将图片保存到drawable目录下 [color=cya ... -
android 视频的缩图制作
2010-03-05 15:46 2818在Gallery 这支ap里我们可 ... -
RandomAccessFile
2010-03-05 15:00 4050随机访问类(RandomAccessFile) - [] 输 ... -
Java iterator
2010-02-27 11:29 1489摘自[url]http://hi.baidu.com/heyi ... -
检查盘volumn的容量
2010-02-26 10:57 1412通过StatFs可以获得Filesystem 的状态 Str ... -
检查盘volumn是否可以写入
2010-02-26 10:44 979通过创建一个临时文件来确定是否盘可写。注意不要把文件放在根目录 ... -
Thread
2010-02-26 10:08 1900android 对UI的操作只能在UI线程(一般是在Activ ...
相关推荐
默认情况下,新的Activity会被压入栈顶,当用户按下Back键时,栈顶的Activity会被弹出。了解任务栈可以帮助你设计更好的导航流程,比如使用`FLAG_ACTIVITY_CLEAR_TOP`或`FLAG_ACTIVITY_SINGLE_TOP`标志。 7. ...
在QML中,我们可以使用Qt.quit()方法来关闭应用,当back键被按下时。以下是一个基本的示例: ```qml import QtQuick 2.15 import QtQuick.Controls 2.15 ApplicationWindow { id: window width: 640 height: ...
在Android开发中,`Dialog`样式`Activity`是一种常见的用户界面设计模式,它允许开发者创建一个看起来像对话框的全屏或部分屏幕视图,可以在应用程序的任何位置弹出。这种设计模式通常用于显示需要用户确认、输入...
创建一个BroadcastReceiver,注册它在需要监听BACK键的Activity中,并在接收到ACTION_KEY_UP广播时执行自定义逻辑: ```java private BroadcastReceiver backKeyReceiver = new BroadcastReceiver() { @Override ...
例如,当用户按下后退键时,可以使用`onBackPressed()`覆盖默认行为,清理不需要的Activity。 总之,Android中的多Activity实现涉及Activity的声明、启动、数据传递、启动模式以及过渡动画等多个方面。理解并熟练...
每个任务(Task)都有一个回退栈,每次启动新的Activity时,系统会将其压入栈底,按下Back键时,会从栈顶取出并销毁Activity。合理设置启动模式,可以控制回退栈的行为,避免不必要的Activity实例。 总结,Activity...
2. 结果处理:在被启动的Activity中,通过`setResult()`设置返回结果,然后调用`finish()`关闭当前Activity。 ```java Intent resultIntent = new Intent(); resultIntent.putExtra("key", "value"); setResult...
默认情况下,每次启动新Activity,都会将其压入栈顶,而`back`键则会弹出栈顶的Activity,回到前一个Activity。 8. **TestRP**: 这可能是项目的主Activity或者测试类。在Android Studio中,通常会有一个名为 ...
在Android开发中,`Fragment`是AppCompatActivity中的一个重要组成部分,它允许我们把界面逻辑和UI组件分解成可重用的部分。然而,与Activity不同的是,Fragment并不直接接收系统的返回键事件。为了使Fragment能够...
在Android应用开发中,用户通常可以通过点击设备的返回按钮(back key)来关闭或返回上一个活动(Activity)。然而,有些应用可能需要更安全或特定的退出方式,比如连续两次快速按下返回键来退出应用程序。这种功能...
在安卓(Android)开发中,实现应用程序通过返回键(back key)退出是一个常见的需求。本压缩包中的资源可能包含了两种不同的方法来实现这一功能。以下是关于这个主题的详细讲解: 一、第一种方式:重写Activity的...
要模拟按下HOME键的效果,可以在Activity的`onKeyDown`方法中处理BACK键事件。BACK键的key code是`KeyEvent.KEYCODE_BACK`。下面是一个简单的示例代码: ```java @Override public boolean onKeyDown(int keyCode, ...
在这个方法里,我们可以检测到用户按下返回键的动作,并根据需求进行相应的操作,如关闭当前子Activity或返回上一级Tab。 ```java public class MyActivityGroup extends ActivityGroup { @Override public ...
在这个例子中,当用户按下返回键时,自定义的逻辑会被执行,而不会触发系统的默认返回操作(如关闭当前Activity)。 在`源码说明.txt`中,可能包含了解释如何在实际项目中应用这些概念的详细步骤,包括如何根据业务...
- **回退栈(Back Stack)**:Activity的回退栈遵循“后进先出”原则,当用户按下返回键时,最近的Activity会被弹出栈,直至关闭整个任务。 9. **启动任务 (Starting a Task)** - **启动新任务**:通过Intent设置...
- 通过`setCancelable()`方法可以设置是否允许用户通过按下Back键来取消ProgressDialog。 #### 四、列表视图与适配器 12. **ListView优化**: - 使用ViewHolder模式可以减少频繁创建和销毁View的操作,提高...
Android系统为Activity提供了onBackPressed()方法,当用户按下Back键时,系统会自动调用这个方法。我们可以覆盖此方法来自定义Back键的行为: ```java @Override public void onBackPressed() { super....
- **关键类(Key Classes)** - `Context`: 提供了应用程序的信息和服务访问接口。 - `Activity`: 代表一个屏幕界面,通常用于与用户交互。 - `Service`: 在后台运行的服务,可以长时间执行而无需用户界面。 - `...
从这句话我们可以知道,当某个 Activity 变得“容易”被系统销毁时,该 Activity 的 onSaveInstanceState 就会被执行,除非该 Activity 是被用户主动销毁的,例如当用户按 BACK 键的时候。 那么,什么时候 Activity...
Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...