onActivityResult的使用(Activity界面销毁数据带回)
来源:互联网 发布:ucsc数据库 编辑:程序博客网 时间:2024/06/06 03:23
demo说明.工作中遇到一种需求:一个页面中有三个条目(修改姓名,修改性别,修改年龄).点击三个条目跳转到一个Activity.当activity销毁时,会将填写的数据带回XML代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.yzhglx.demo.MainActivity"> <TextView android:id="@+id/but" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#cf8585" android:clickable="true" android:gravity="center" android:padding="18dp" android:text="保存" android:textColor="#0810e4" android:textSize="28sp"/> <LinearLayout android:id="@+id/but1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ae9f30" android:clickable="true"> <TextView android:id="@+id/tv_name_title" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:padding="12dip" android:text="姓名" android:textColor="#ed122f" android:textSize="18sp" /> <TextView android:id="@+id/tv_name" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="2" android:padding="12dip" android:textColor="#ed122f" android:textSize="18sp"/> </LinearLayout> <LinearLayout android:id="@+id/but2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#1c1cb4" android:clickable="true"> <TextView android:id="@+id/tv_sex_title" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:padding="12dip" android:text="性别" android:textColor="#ed122f" android:textSize="18sp" /> <TextView android:id="@+id/tv_sex" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="2" android:padding="12dip" android:textColor="#ed122f" android:textSize="18sp"/> </LinearLayout> <LinearLayout android:id="@+id/but3" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#11a743" android:clickable="true"> <TextView android:id="@+id/tv_age_title" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:padding="12dip" android:text="年龄" android:textColor="#ed122f" android:textSize="18sp" /> <TextView android:id="@+id/tv_age" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="2" android:padding="12dip" android:textColor="#ed122f" android:textSize="18sp"/> </LinearLayout> <Button android:id="@+id/clear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="88dp" android:text="清空" /></LinearLayout>
页面简单:三个条目.一个保存一个清空按钮;<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FF0" android:gravity="center" android:padding="18dp" android:text="姓名" android:textSize="18sp"/> <EditText android:id="@+id/et_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="18dp"/> <Button android:id="@+id/et_but" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dip" android:padding="12dp" android:text="确定" /></LinearLayout>
此页面一个TextView,一个Edittext用于用户输入内容.点击Button确定后销毁该页面
MainActivity中代码package com.example.yzhglx.demo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView but; private TextView tv_name; private TextView tv_sex; private TextView tv_age; private TextView tv_name_title; private TextView tv_sex_title; private TextView tv_age_title; private LinearLayout but1; private LinearLayout but2; private LinearLayout but3; public static final int NAME = 1; public static final int SEX = 2; public static final int AGE = 3; private Button clear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //一大波findViewById 可用快捷工具替代 but = (TextView) findViewById(R.id.but); tv_name = (TextView) findViewById(R.id.tv_name); tv_sex = (TextView) findViewById(R.id.tv_sex); tv_age = (TextView) findViewById(R.id.tv_age); tv_name_title = (TextView) findViewById(R.id.tv_name_title); tv_sex_title = (TextView) findViewById(R.id.tv_sex_title); tv_age_title = (TextView) findViewById(R.id.tv_age_title); but1 = (LinearLayout) findViewById(R.id.but1); but2 = (LinearLayout) findViewById(R.id.but2); but3 = (LinearLayout) findViewById(R.id.but3); clear = (Button) findViewById(R.id.clear); but.setOnClickListener(this); but1.setOnClickListener(this); but2.setOnClickListener(this); but3.setOnClickListener(this); clear.setOnClickListener(this); } @Override public void onClick(View view) { Intent intent = new Intent(this, TwoActivity.class); switch (view.getId()) { case R.id.but: String name = tv_name.getText().toString().trim(); String sex = tv_sex.getText().toString().trim(); String age = tv_age.getText().toString().trim(); if(name.isEmpty() || sex.isEmpty() || age.isEmpty()){ Toast.makeText(this, "不能有空选项:" + age, Toast.LENGTH_SHORT).show(); return; } Toast.makeText(this, "需要传递到服务器的数据: 姓名: " + name + "性别: " + sex + "年龄: " + age, Toast.LENGTH_SHORT).show(); break; case R.id.but1: intent.putExtra("title", tv_name_title.getText().toString().trim()); startActivityForResult(intent, NAME); break; case R.id.but2: intent.putExtra("title",tv_sex_title.getText().toString().trim()); startActivityForResult(intent, SEX); break; case R.id.but3: intent.putExtra("title",tv_age_title.getText().toString().trim()); startActivityForResult(intent, AGE); break; case R.id.clear: tv_name.setText(""); tv_sex.setText(""); tv_age.setText(""); break; } } //通过此方法接收数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != 1) { return; } String title = data.getStringExtra("title"); switch (requestCode) { case NAME: tv_name.setText(title); break; case SEX: tv_sex.setText(title); break; case AGE: tv_age.setText(title); break; } }}开启Activity的时候需要使用startActivityForResult方法.Twoactivity页面package com.example.yzhglx.demo;import android.content.Intent;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;/** * 作者 杨义 , 时间 2017/6/12. * <p> * 警句:真英雄大勇无谓,好风景总在险峰 */public class TwoActivity extends AppCompatActivity { private TextView tv_name; private EditText et_text; private Button et_but; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.twoactivity); tv_name = (TextView) findViewById(R.id.tv_name); et_text = (EditText) findViewById(R.id.et_text); et_but = (Button) findViewById(R.id.et_but); Intent intent = getIntent(); String title = intent.getStringExtra("title"); tv_name.setText(title); et_but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String trim = et_text.getText().toString().trim(); if(trim.isEmpty()){ Toast.makeText(TwoActivity.this, "不能为空", Toast.LENGTH_SHORT).show(); return; } Intent intent = new Intent(); intent.putExtra("title", trim); setResult(1, intent); finish(); } }); }}功能简单,实现简单,但是本人忘性比较大.特使用博客帮助记忆.
阅读全文
2 0
- onActivityResult的使用(Activity界面销毁数据带回)
- 用Intent从开启的Activity带回数据
- onActivityResult的用法-Activity间回调传递数据
- onactivityresult在activity中数据的传递
- Activity---Activity之间数据交流(onActivityResult的用法)
- Activity---Activity之间数据交流(onActivityResult的用法)
- Activity中得到新打开Activity关闭后返回的数据(onActivityResult和setResult方法的使用)
- 关于Activity的onActivityResult
- Activity之间数据传递onActivityResult
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Android--Activity之间数据交流(onActivityResult的用法)
- startActivityForResult,onActivityResult,利用Activity启动返回的数据
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity带回调的启动方式
- 【Node】nodejs+express+mongodb入门实例
- 分针网—每日分享:HTTP 填坑
- 图片轮播,鼠标放上去即停止,鼠标移除即播放下一张图片
- 原生js QQ列表展示小练习
- Ext属性详细信息
- onActivityResult的使用(Activity界面销毁数据带回)
- 整合maven+mybatis+generator生成java自定义model实体类,dao接口和mapper映射文件
- 2.java面试复习大纲
- Jquery图片轮播插件--jcarousellite的使用
- Hadoop基本原理
- json表单序列化
- CRC循环冗余检验算法
- GET与POST比较(数据大小、数据类型、传送形式)
- IOS核心动画高级二:寄宿图