Android开发:处理EditText输入和返回键事件
Android开发:处理EditText输入和返回键事件
在Android开发中,我们经常需要处理用户的输入,并根据输入执行相应的操作。本文将介绍如何在EditActivity中处理EditText的输入和返回键事件,并将数据传递回MainActivity。
场景描述
假设我们有一个EditActivity,用户可以在其中输入内容。当用户按下返回键时,我们需要检查输入的内容是否为空。如果为空,则设置一个默认值。最后,将输入的内容和时间信息传递回MainActivity。
代码实现
首先,在EditActivity的onKeyDown()方法中添加以下代码:javapublic boolean onKeyDown(int keyCode, KeyEvent event){ if(keyCode == KeyEvent.KEYCODE_BACK){ String content = et.getText().toString().trim(); if (content.isEmpty()) { content = 'Default Content'; } String time = dateToStr();
Intent intent = new Intent(); intent.putExtra('content', content); intent.putExtra('time', time); setResult(RESULT_OK, intent); finish(); return true; } return super.onKeyDown(keyCode, event);}
代码解析:
- 获取用户输入: 使用
et.getText().toString().trim()获取用户输入的内容,并去除首尾空格。2. 检查输入是否为空: 使用isEmpty()方法检查输入的内容是否为空。3. 设置默认值: 如果输入为空,则将content设置为'Default Content'。4. 获取当前时间: 使用dateToStr()方法获取当前时间信息。5. 创建Intent: 创建一个新的Intent对象,用于传递数据。6. 添加数据到Intent: 使用putExtra()方法将content和time添加到Intent中。7. 设置结果码: 使用setResult()方法设置结果码为RESULT_OK,表示操作成功。8. 关闭当前Activity: 使用finish()方法关闭当前Activity。
在MainActivity中接收数据
在MainActivity中,可以通过重写onActivityResult()方法来接收从EditActivity返回的数据:java@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { String content = data.getStringExtra('content'); String time = data.getStringExtra('time'); // 处理接收到的数据 }}
代码解析:
- 检查请求码和结果码: 确保请求码与启动
EditActivity时使用的请求码一致,并且结果码为RESULT_OK。2. 获取数据: 使用getStringExtra()方法从Intent中获取content和time数据。3. 处理数据: 根据实际需求处理接收到的数据。
总结
本文介绍了如何在Android应用中处理EditText输入和返回键事件,并通过Intent将数据传递回上一个Activity。通过这种方式,我们可以方便地获取用户的输入并进行相应的处理。
原文地址: http://www.cveoy.top/t/topic/bznN 著作权归作者所有。请勿转载和采集!