前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Activity间中使用Intent传值

Activity间中使用Intent传值

作者头像
欢醉
发布于 2018-01-22 03:07:48
发布于 2018-01-22 03:07:48
66000
代码可运行
举报
文章被收录于专栏:james大数据架构james大数据架构
运行总次数:0
代码可运行

主页面用来输入一个值传入第二个页面显示,关闭第二个页面返回一个值

主页布局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="关闭第二个页面后返回值" />

    <EditText
        android:id="@+id/txt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/view"
        android:text="" />
    <Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/txt"
        android:text="转第二页" />
</RelativeLayout>

MainActivity,主要通过startActivityForResult来传递请求码,返回数据的时候,第二个页面调用Activity.setResult()方法设置返回Intent以及返回码,需要重写源Activity的onActivityResult()方法以便于接受返回的Intent,在onActivityResult()中会判断请求码和响应码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.android01;

import android.os.Bundle;
import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private final static String TAG="MainActivity";
    private final static int REQUEST_CODE = 1;
    private final static String CONTENT = "content";
    private EditText txtEditText = null;
    private Button btnButton = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtEditText = (EditText) this.findViewById(R.id.txt);
        if (savedInstanceState != null && savedInstanceState.containsKey(CONTENT)) {
            txtEditText.setText(savedInstanceState.getString(CONTENT) + "[2]");
        }
        btnButton = (Button) this.findViewById(R.id.btn);
        btnButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                String str=txtEditText.getText().toString();
                intent.putExtra("fromMain", str);
                // startActivity(intent);
                // 启动需要监听返回值的Activity,并设置请求码:requestCode
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.app.Activity#onActivityResult(int, int,
     * android.content.Intent)
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // 当otherActivity中返回数据的时候,会响应此方法
        // requestCode和resultCode必须与请求startActivityForResult()和返回setResult()的时候传入的值一致。
        if (requestCode == REQUEST_CODE && resultCode == SecondActivity.RESULT_CODE) {
            Bundle bundle=data.getExtras();
            String strResult = bundle.getString("result");
            Log.i(TAG,"onActivityResult: "+ strResult);
            Toast.makeText(MainActivity.this, strResult, Toast.LENGTH_LONG).show();
        }
    }

    /*
     * (non-Javadoc) 保存Activity页面状态在onStop之前执行
     */
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
        String contentString = txtEditText.getText().toString();
        outState.putString(CONTENT, contentString);
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

每二个Activity

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 
 */
package com.example.android01;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

/**
 * @author Administrator 2014-3-12 下午10:21:17
 */
public class SecondActivity extends Activity {

    private final static String TAG="MainActivity";
    public final static int RESULT_CODE=1;
    private Button btnBack = null;
    private EditText txtContent = null;
    private TextView viewContent = null;

    /*
     * (non-Javadoc)
     * 
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondactivity);

        txtContent = (EditText) this.findViewById(R.id.txtContent);
        viewContent = (TextView) this.findViewById(R.id.viewContent);
        btnBack = (Button) this.findViewById(R.id.btnBack);

        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
        String strContentString = bundle.getString("fromMain");
        Log.i(TAG,"SecondActivity: "+ strContentString);
        viewContent.setText(strContentString);
        btnBack.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent();
                intent.putExtra("result", txtContent.getText().toString());
                setResult(RESULT_CODE, intent);// 设置resultCode,onActivityResult()中能获取到
                finish();
            }
        });
    }

}

注意请求码与返回码的对应判断,因为可能有多个请求码与返回码。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-03-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
wordpress删除文章修订版本和自动草稿而残留的数据
下面介绍批量删除数据库中因WordPress文章修订版本、自动保存和自动草稿生成的大量占用数据库空间的冗余数据的3种方法:
半夜喝可乐
2024/09/30
2870
wordpress删除文章修订版本和自动草稿而残留的数据
WordPress 数据库探究 #1 -- 介绍
这个系列教程翻译自:A look inside the WordPress database。由于原文比较长,我把它分成一系列教程,今天第一篇是开篇介绍。
Denis
2023/04/13
4270
13 个 WordPress 提速技巧
性能是一个网站成功的非常关键因素,任何人都不喜欢访问速度超慢的网站。WordPress 的开放性造就 WordPress 有着成千上万的插件,使得 WordPress 比以其他 CMS 程序更受欢迎,但是开放也在一定程度上使得 WordPress 的性能不是很好,所以当你发现你的 WordPress 站点性能很差,你应该尝试通过下面的方式去优化它:
Denis
2023/04/14
1.2K0
13 个 WordPress 提速技巧
优化 WordPress 数据库,提高 WordPress 速度
WordPress 的机制是主要使用 wp_posts 表来存储所有数据,包括日志,页面,附件,导航菜单等等,所以 WordPress 使用了一定时间之后,数据量一大还是有点慢,除了对 WordPress 进行全方面的优化之外,我们还可以对数据表进行减肥和优化,来提高 WordPress 的速度。
Denis
2023/04/15
1.3K0
优化WordPress数据库只需6步 给网站提点速吧
WordPress的文章、评论等很多数据都是存放在数据库的,所以搭建wordpress网站的时间,网站的空间不需要多大,而数据库一定要充足,而在WordPress数据库中主要使用 wp_posts 表来存储日志,页面,附件,导航菜单等数据,根据使用的时间越来越长,堆积的数据越来越多,从而运行起来也越来越慢,那么我是十分有必要对 WordPress数据库来进行整体的优化下。
于飞云计算
2019/07/02
1.2K0
优化WordPress数据库只需6步 给网站提点速吧
WordPress 手动优化和插件优化 MySQL 数据库的方法
WordPress 博客出了名的比较臃肿,特别是运行时间久了 MySQL 数据库中垃圾数据较多,进而影响到数据库查询速度和网站打开速度。因此有必要定期对 MySQL 数据库进行优化。本文介绍了两种优化 MySQL 数据库的方法。 对于高手来说这些都是基本功,老魏考虑到新手刚接触 wordpress 博客还是一知半解的状态,所以介绍了手动优化和插件优化 MySQL 数据库的方法。 平时可以使用插件来优化数据库,相关教程:WP-Optimize 插件安装使用教程-WordPress 数据库优化效果明显,WP-S
魏艾斯博客www.vpsss.net
2018/06/01
1.7K0
WordPress 数据库探究 #2 -- wp_posts
WordPress 主要被用作一个博客引擎的内容管理系统(简称 CMS)。所以我认为这个“内容”表是最重要的。静态页面,日志和附件都是内容,WordPress 把它们都放在一个表中 -- wp_posts。 实际上,附件是被保存在它们原来的位置 -- 在磁盘的文件,但是 WordPress 用 wp_posts 表保存附件的元信息,如上传该附件用户的 ID,附件所属日志的 ID,上传的日期等等。
Denis
2023/04/13
7400
Optimize DB:在 WordPress 后台优化 MySQL 数据库
随着 MySQL 的使用,包括 BLOB 和 VARCHAR 字节的表将变得比较繁冗,因为这些字段长度不同,对记录进行插入、更新或删除时,会占有不同大小的空间,记录就会变成碎片,且留下空闲的空间。就像具有碎片的磁盘,会降低性能,需要整理,因此要优化。
Denis
2023/04/14
1.1K0
Optimize DB:在 WordPress 后台优化 MySQL 数据库
MySQL 数据库优化,看这篇就够了
数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷.
用户1516716
2019/06/17
6150
WordPress 自定义字段(Custom Fields)详细介绍和使用
我们在使用 WordPress 撰写日志或者页面的时候,都会在编辑框下面看到自定义字段(Custom Fields),那么什么是自定义字段呢?这个 WordPress 自定义字段又是干什么的?
Denis
2023/04/14
3.6K0
WordPress 自定义字段(Custom Fields)详细介绍和使用
【说站】WordPress网站文章ID不连续如何解决?
对于WordPress网站文章ID不连续的问题困扰了我很久,今天将WordPress文章ID不连续的原因和具体解决办法做详细的说明。
很酷的站长
2022/11/24
6130
【说站】WordPress网站文章ID不连续如何解决?
迁移Wordpress到Docker
很多年前我的个人博客是部署在 Linode 的服务器,后来又给女儿弄了一个博客记录女儿的成长,使用的是 Wordpress ,老婆执笔。现在我的博客早已迁移到了 github ,女儿也长大了,博客好几年没有更新,准备停掉 linode 服务器,将女儿博客迁移到本地。
oec2003
2024/05/15
2140
迁移Wordpress到Docker
WP-Optimize 插件安装使用教程-WordPress 数据库优化效果明显
玩 wordpress 的人都知道,wp 本身是比较庞大的一个 php 程序,尤其是数据库方面是比较大的,wp 的文章编辑器在写文章的时候会定时自动储存为修订版本以防意外,当你文章写完了之后,那些储存起来的文章片段会一直保存在数据库中,日积月累成为影响 wp 工作效率的累赘。wp 数据库中的可清理部分包括但不限于以下这些:修订版本,草稿,自动草稿,待审评论,垃圾评论,回收站评论,孤立的文章元信息,孤立的评论元信息,孤立的关系信息,控制板订阅缓存。为了提高数据库效率必须使用一个 wp 数据库优化插件,经过多方
魏艾斯博客www.vpsss.net
2018/06/01
2K0
sql批量删除wordpress所有日志修订revision
wordpress日志修订是所有速度慢的罪恶之源,每次在后台发布或修改文章的时候,数据库都会产生一个revision版本的记录,几百篇日志会有几千条日志修订的记录,如果更多文章的话,那一个网页打开可能就要花费好几秒的时间,那时你的访客早就不见踪影了。问题出现了,就要想办法解决,Q&A
ytkah
2022/03/14
5860
wordpress如何批量关闭旧日志留言功能
于一些wordpress技术博客或者其他wordpress博客来说,一些旧日志的内容可能已经过时了,但是一些读者,还是对一些问题“纠缠不清”或者“喋喋不休”,怎么办,把留言关了就好了:
ytkah
2022/03/14
4990
WordPress 修改默认的 wp_ 数据库前缀
在安装WordPress 的时候,默认的数据库前缀都是 wp_,为了日益突出的安全问题,最好修改默认的 wp_ 数据库前缀(当然,前提是你已经按照默认前缀安装了)。下面的方法都是通过在PHPmyadmin 那里通过MYsql 语句修改的。进行下面操作前务必备份数据库。 再提醒一句:进行下面操作前务必备份数据库! 进入PHPmyadmin,点击SQL命令,输入以下命令: 在 wp-config.php 修改数据库前缀 打开你的 wp-config.php 文件,把数据库前缀 wp_ 改成你想要的前缀,比如 d
Jeff
2018/01/19
1.6K0
安装 WordPress 后进行的设置和优化
安装好 WordPress 之后,在开始写博客之前,我们需要对 WordPress 进行一些基本的设置和优化,下面是我在安装好 WordPress 之后进行的最基本的设置和优化:
Denis
2023/04/14
3470
安装 WordPress 后进行的设置和优化
WordPress 数据库维护时常用到 12 个 SQL 语句
虽然通过 WordPress 强大的插件库,你几乎可以干任何的事情,但是有时候需要快速修复一些特定的问题的时候,直接操作数据库可能反而是方便的方法,所以这篇文章就给大家介绍 WordPress 数据库维护时常用到 12 个 SQL 语句。
Denis
2023/04/15
5620
修改 WordPress 数据库默认表前缀 wp_ 的方法
新手使用 wordpress 初期,数据库默认表前缀用的都是 wp_,从理论上来说对博客安全性不好。所以说我们正式搭建博客的时候都会把默认 wp_ 改为别的,比如 vps_ 等等只有你自己知道的,这样即使被人扫描也无法找到真正的表前缀,也就安全了很多。因为群友问到说一个服务器里面安装了两个 wordpress 博客,表前缀还都是一样的,所以想修改一下,所以魏艾斯博客就搜索整理了相关知识,部分内容参考了@boke122 导航的文章(原文地址 https://boke112.com/3758.html),表示感谢。
魏艾斯博客www.vpsss.net
2018/09/20
2K0
修改 WordPress 数据库默认表前缀 wp_ 的方法
WordPress 技巧:如何修改 WordPress 数据库前缀
我们知道 WordPress 的数据库表,可以设置前缀,默认是 wp_,很多同学也就默认用了 wp_,如果某种原因(比如提高安全性)要修改的 WordPress 数据的前缀,我们应该怎么做?
Denis
2023/04/15
1.4K0
推荐阅读
相关推荐
wordpress删除文章修订版本和自动草稿而残留的数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验