zoukankan      html  css  js  c++  java
  • Android——关于Activity跳转的返回(无返回值和有返回值)——有返回值

    说明:

    跳转页面,并将第一页的Edittext输入的数据通过按钮Button传到第二页用Edittext显示,点击第二页的

    返回按钮Button返回第一页(改变第二页的Edittext的内容会传至第一页的Edittext显示)

    ——有返回值的方式

    1.给第一页面Edittext和Button设置id

    2.设置Button的点击监听

    (1)获取view实例,通过Edittext的id找到Edittext

    (2)获取内容并转为文本形式

    getText().toString()

    (3)设置Intent(意图)告诉第二个页面,我要跳转了

    Intent in = new Intent(this,excise2.class);

    (4)在跳转的同时,通过Intent将输入的文本内容一并存储传过去

    in.putExtra("myet",str);

    (5)开始跳转 区别普通方式

    startActivityForResult(in,1);

    3.接受页面用Edittext接收

    (1)给接受页面Edittext和Button设置id

    (2)创建第二页面

    public class excise2 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.excise2);

    (3)接收Intent意图 get

    Intent in = getIntent();

    (4)取存入的数据 get get

    String str = in.getExtras().getString("myet");

    (5)显示数据

    操作View实例

    EditText mytv= ( EditText)findViewById(R.id.jieshouzhi);

    恢复输入框里面的内容(设置) set

    mytv.setText(str);

    4.设置按钮的点击监听

    (1)存储返回数据 也要用Intent

    EditText ett = (EditText)findViewById(R.id.jieshouzhi);

    (2)设置返回数据

    先设置ResultCode,再设置存储数据的意图

    Intent in = new Intent();

    setResult(RESULT_OK,in.putExtra("mytv",ett.getText().toString()));

    (3)关闭

    finishi();

    5.在第一个页面接收返回的值

    (1)重写回调方法

    onActivityResult(int requestCode, int resultCode, Intent data)

    (2)加判断条件

    (3) 先获取返回的信息

    String str = data.getExtras().getString("mytv");

    (4)显示

    EditText ett = (EditText)findViewById(R.id.ett);

    5)传值 设置 set

    ett.setText(str);

     

    excise1.xml

     <EditText
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:textSize="40dp"
            android:id="@+id/ett"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="传值至第三页"
            android:textSize="40dp"
            android:id="@+id/chuanzhi"
            android:layout_marginTop="100dp"
            android:onClick="clickcz"
            />

    excise1.java

    public void  clickcz(View view)
        {
            //Toast静态方法 直接用类名调用,不需要实例化
            //构建了Toast方法  实例方法调用  方法链
            Toast.makeText(this,"这是鼠标点击监听触发的",Toast.LENGTH_LONG).show();
    
            //取得要传递的信息
            //获取View实例
            EditText ett = (EditText)findViewById(R.id.ett);
            //获取内容
            String str = ett.getText().toString();
            //跳转用意图
            Intent in = new Intent(this,excise2.class);
            //存储内容 通过Intent
            //Extra 扩展 实际上是一个HashMap,进行限制 putExtra 是一个bundle
            in.putExtra("myet",str);
            //开始跳转 无返回值的写法
            //startActivity(in);
    
            //开始跳转 有返回值的写法
            //启动方式,有返回值
            //第一个参数 intent
            //第二个参数 requestCode 请求码
            startActivityForResult(in,1);
    
        }
            //处理返回信息的监听(回调方法)
            //监听所有返回信息的
           //必须要有requestCode区分由哪个请求返回的
          @Override
          protected void onActivityResult(int requestCode, int resultCode, Intent data) {
             super.onActivityResult(requestCode, resultCode, data);
    
              if(requestCode ==1)
                  if(resultCode == RESULT_OK)
                  {
    
                      //先获取返回的信息
                   String str = data.getExtras().getString("mytv");
                      //显示
                      EditText ett = (EditText)findViewById(R.id.ett);
                      //传值 设置 set
                      ett.setText(str);
                  }
              else
                  {
                      Toast.makeText(this,"返回的内容有错误",Toast.LENGTH_LONG);
                  }
           }

    excise2.xml

    <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="excise2 第三页"
            android:textSize="40dp"
            android:id="@+id/jieshouzhi"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="250px"
            android:text="带返回值得返回"
            android:textSize="40dp"
            android:id="@+id/clickec4"
            android:onClick="clickec4"/>

    excise2.java

    package com.example.chenshuai.excise;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    
    /**
     * Created by chenshuai on 2016/3/20.
     */
    public class excise2 extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.excise2);
    
    
            //接受信息
    
            //1.接受传递过来的意图
            Intent in = getIntent();
            //2.取数据
            String str = in.getExtras().getString("myet");
            //3.显示在哪里
            //操作View实例
            EditText mytv= (EditText)findViewById(R.id.jieshouzhi);
            //恢复输入框里面的内容(设置) set
            mytv.setText(str);
    
    
        }public void clickec4(View v)
        {
           //存储返回数据 也要用Intent
            EditText ett = (EditText)findViewById(R.id.jieshouzhi);
    
            //设置返回数据
            //先设置ResultCode,再设置存储数据的意图
            Intent in = new Intent();
    
            setResult(RESULT_OK,in.putExtra("mytv",ett.getText().toString()));
    
            finish();
        }
    
    
    
    }
  • 相关阅读:
    滚轮事件的防冒泡、阻止默认行为的代码(效果是:只让当前div滚动,连当前文档都不滚动的效果)
    js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
    使用 RequireJS 优化 Web 应用前端
    javascript的页面加载及性能优化(兼容IE7)
    JavaScript中的this陷阱的最全收集--没有之一
    mysql 配置MHA
    mysql 在linux下的完整安装过程
    vue 开发系列(八) 动态表单开发
    vue 开发系列(七) 路由配置
    vue 开发系列(六) 企业微信整合
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5304497.html
Copyright © 2011-2022 走看看