Button.setOnClickListener(mGoBack);
public OnClickListener mGoBack = new OnClickListener() {
public void onClick(View v) {
finish();
}
};
要返回上一个activity,只需结束当前的activity
有两Activity~A和BA运行启动BActivity保留A情形B结束时候传回参数A~~~
我用startActivity发现创建了新Activity~~~
能保留A现场啊
A启动B时样写
Intent intent=new Intent(MainActivity.this,SecMainActivity.class);
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub ...
在android中重写父类的onkeydown方法,就可以更方便的操作了。
Android代码 收藏代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0){
//需要处理
}
return false;
}
长按事件
Java代码 收藏代码
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL) {
// a long press of the call key.
// do our work, returning true to consume it. by
// returning true, the framework knows an action has
// been performed on the long press, so will set the
// canceled flag for the following up event.
return true;
}
return super.onKeyLongPress(keyCode, event);
}
Java代码 收藏代码
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL && event.isTracking()
&& !event.isCanceled()) {
// if the call key is being released, AND we are tracking
// it from an initial key down, AND it is not canceled,
// then handle it.
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_0) {
// this tells the framework to start tracking for
// a long press and eventual key up. it will only
// do so if this is the first down (not a repeat).
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
// Tell the framework to start tracking this event.
getKeyDispatcherState().startTracking(event, this);
return true;
} else if (event.getAction() == KeyEvent.ACTION_UP) {
getKeyDispatcherState().handleUpEvent(event);
if (event.isTracking() && !event.isCanceled()) {
// DO BACK ACTION HERE
return true;
}
}
return super.dispatchKeyEvent(event);
} else {
return super.dispatchKeyEvent(event);
}
}
分享到:
相关推荐
本篇文章将详细讲解Android RecyclerView的基础写法及其简单实现。 首先,我们需要在项目的build.gradle文件中添加RecyclerView的依赖库。在app模块的build.gradle文件中,找到dependencies块,添加以下代码: ```...
本文将详细介绍`Handler`的几种常见写法,以及如何使用`Handler.Callback`进行消息处理。 1. **基本Handler使用** 基本的`Handler`使用通常涉及到创建`Handler`对象,然后在后台线程中通过`Looper`和`Message`与之...
本文将深入探讨`Android.mk`文件的写法和关键知识点。 1. **LOCAL_PATH变量的设定** `LOCAL_PATH`变量的设定是`Android.mk`文件的起点,它指示了源文件所在的目录。通常,`LOCAL_PATH`会被设置为当前`Android.mk`...
本示例探讨的是如何实现Android ViewHolder的超简洁写法,无需为每个Adapter创建单独的ViewHolder类。 ViewHolder模式的核心思想是减少findViewById的调用,提高列表滚动时的性能。通常情况下,我们会在Adapter的...
这一行代码定义了当前目录,`$(call my-dir)`返回.mk文件所在的目录,这对于引用相对路径很有用。 2. **模块定义**: ```makefile include $(CLEAR_VARS) ``` 清除之前定义的变量,确保每个模块的设置独立。 ...
下面将详细解释Android.mk文件的写法以及在示例中的应用。 首先,`LOCAL_PATH`变量的设置至关重要。`LOCAL_PATH:=$(call my-dir)`这行代码定义了LOCAL_PATH为当前Android.mk文件所在的目录,这样就可以方便地引用该...
假设我们有一个简单的网络API调用,返回用户信息: ```java public interface UserService { void getUserInfo(Callback callback); } // 使用Lambda优化 public void getUserInfoWithLambda() { userService....
// 返回true表示已处理事件,false则继续传递事件 } }); ``` 六、AdapterView.OnItemClickListener(ListView或其他AdapterView的点击监听) 当需要监听ListView或者其他使用Adapter的视图的点击事件时,可以...
下面将详细讲解Android.mk文件的写法和其中涉及的关键概念。 1. **LOCAL_PATH变量**:LOCAL_PATH变量是用来定位源代码的位置。通常,Android.mk文件会与源代码文件位于同一目录下。`$(call my-dir)`是一个预定义的...
本文将详细讲解`Android.mk`文件的写法及其在Android编译系统中的作用。 首先,每个`Android.mk`文件都会定义`LOCAL_PATH`变量,这是为了确定源代码文件的位置。通常,`LOCAL_PATH`设置为`$(call my-dir)`,这会...
在Android开发中,ListView是广泛使用的控件,用于展示大量数据列表。适配器(Adapter)作为桥梁,将数据源与ListView绑定,实现数据显示。在本文中,我们将深入探讨一种"超省写法",旨在简化ListView适配器的编写...
android编译系统的makefile文件Android.mk写法如下 (1) Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下 Android.mk和需要编译的源文件在同一目录下,宏函数“my-dir”右编译系统提供的...
在Android开发中,`ExpandableListView`是一种常用的控件,用于展示可以展开和折叠的列表,通常用于构建具有层级结构的数据展示。这个控件非常适合处理像菜单、目录或树状结构的数据,例如“二级列表”场景。下面...
这里的`my-dir`函数返回调用该函数时所在的目录路径。 **2. 编译模块的定义** - **定义**: 在Android.mk中,可以通过一系列的变量和宏定义来描述一个编译模块。每个模块以`include $(CLEAR_VARS)`开始,并以`...
在Android开发中,展示复杂数据集时,列表视图(ListView)或回收视图(RecyclerView)经常被用到。然而,当列表中的项有多种不同的布局时,处理起来就会变得复杂。`drakeet/MultiType`是一个开源项目,旨在简化这种...
Java及Android中常用链式调用写法简单示例 Java 及 Android 中的链式调用是一种非常常见的编程方式,它能够简洁地实现对象的构建和配置。在本文中,我们将详细介绍 Java 及 Android 中常用的链式调用写法,并结合...
在IT行业中,MVP(Model-View-Presenter)是一种常见的设计模式,特别是在Android应用开发中。MVP的主要目的是为了分离视图(View)与业务逻辑(Presenter),保持代码的清晰和可测试性。本篇文章将深入探讨MVP的两...
- 接收数据:同样使用Socket,通过`Socket.getInputStream()`获取输入流,读取服务器返回的数据。这通常涉及到多线程或AsyncTask,因为I/O操作是阻塞的,不能在主线程中执行。 4. 两种写法: 提供的资源可能包含...
2. **编辑器模式**:`SharedPreferences.edit()`会返回一个`SharedPreferences.Editor`对象,用于对SharedPreferences进行修改。每次调用`edit()`都会创建一个新的编辑器对象,直到调用`commit()`或`apply()`,之前...
它们避免了回调地狱,提供了类似同步代码的写法,同时保持了非阻塞的特性。在Android的单向数据流架构中,如MVVM(Model-View-ViewModel)模式,Kotlin Coroutines可以优化以下关键组件: 1. **Model**:数据层通常...