首页 > 代码库 > Intent的使用传递数据
Intent的使用传递数据
直接看效果图:
部分代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="6" android:paddingBottom="25dp" android:paddingLeft="15dp" android:paddingTop="25dp" android:text="头像" /> <ImageView android:id="@+id/photo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:paddingTop="15dp" android:paddingBottom="15dp" android:scaleType="fitCenter" android:onClick="onClick"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:paddingBottom="25dp" android:paddingTop="25dp" android:src="@mipmap/jiantou" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="6" android:paddingBottom="25dp" android:paddingLeft="15dp" android:paddingTop="25dp" android:text="昵称" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="right" android:paddingBottom="25dp" android:paddingTop="25dp" android:onClick="onClick" android:text="张三" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:paddingBottom="25dp" android:paddingTop="25dp" android:src="@mipmap/jiantou" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="6" android:paddingBottom="25dp" android:paddingLeft="15dp" android:paddingTop="25dp" android:text="手机号" /> <TextView android:id="@+id/tv_telphone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="right" android:paddingBottom="25dp" android:paddingTop="25dp" android:onClick="onClick" android:text="未填写" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:paddingBottom="25dp" android:paddingTop="25dp" android:src="@mipmap/jiantou" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="6" android:paddingBottom="25dp" android:paddingLeft="15dp" android:paddingTop="25dp" android:text="邮箱" /> <TextView android:id="@+id/tv_email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="right" android:paddingBottom="25dp" android:paddingTop="25dp" android:onClick="onClick" android:text="110@163.com" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:paddingBottom="25dp" android:paddingTop="25dp" android:src="@mipmap/jiantou" /> </LinearLayout></LinearLayout>
MainActivity.class文件
package com.dc.lesson07_works;import android.content.ContentResolver;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private static final int PHOTO_REQUEST_CAREMA = 1;// 拍照 private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择 private static final int PHOTO_REQUEST_CUT = 3;// 结果 private ImageView photo; /* 头像名称 */ private static final String PHOTO_FILE_NAME = "temp_photo.jpg"; private File tempFile; private static final int TO_ABCTIVITY = 30; private TextView tv_name; private TextView tv_telphone; private TextView tv_email; Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { tv_name = (TextView) findViewById(R.id.tv_name); tv_telphone = (TextView) findViewById(R.id.tv_telphone); tv_email = (TextView) findViewById(R.id.tv_email); photo = (ImageView) findViewById(R.id.photo); photo.setOnClickListener(this); tv_name.setOnClickListener(this); tv_telphone.setOnClickListener(this); tv_email.setOnClickListener(this); } /* * 剪切图片 */ private void crop(Uri uri) { // 裁剪图片意图 Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("crop", "true"); // 裁剪框的比例,1:1 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); // 裁剪后输出图片的尺寸大小 intent.putExtra("outputX", 250); intent.putExtra("outputY", 250); intent.putExtra("outputFormat", "JPEG");// 图片格式 intent.putExtra("noFaceDetection", true);// 取消人脸识别 intent.putExtra("return-data", true); // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT startActivityForResult(intent, PHOTO_REQUEST_CUT); } /* * 判断sdcard是否被挂载 */ private boolean hasSdcard() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.photo: // 激活系统图库,选择一张图片 Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERY startActivityForResult(intent, PHOTO_REQUEST_GALLERY); break; case R.id.tv_name: intent = new Intent(this, SeconedActivity.class); intent.putExtra("tv_name", tv_name.getText().toString()); Toast.makeText(this, "" + tv_name.getText().toString(), Toast.LENGTH_SHORT).show(); intent.putExtra("source", "name"); startActivityForResult(intent, 1); break; case R.id.tv_telphone: intent = new Intent(this, SeconedActivity.class); intent.putExtra("tv_phone", tv_telphone.getText().toString()); Toast.makeText(this, "" + tv_telphone.getText().toString(), Toast.LENGTH_SHORT).show(); intent.putExtra("source", "phone"); startActivityForResult(intent, 1); break; case R.id.tv_email: intent = new Intent(this, SeconedActivity.class); intent.putExtra("tv_email", tv_email.getText().toString()); Toast.makeText(this, "" + tv_email.getText().toString(), Toast.LENGTH_SHORT).show(); intent.putExtra("source", "email"); startActivityForResult(intent, 1); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == 1) { tv_name.setText(data.getStringExtra("content")); } if (requestCode == 1 && resultCode == 2) { tv_telphone.setText(data.getStringExtra("content")); } if (requestCode == 1 && resultCode == 3) { tv_email.setText(data.getStringExtra("content")); } if (requestCode == PHOTO_REQUEST_GALLERY) { // 从相册返回的数据 if (data != null) { // 得到图片的全路径 Uri uri = data.getData(); crop(uri); } } else if (requestCode == PHOTO_REQUEST_CUT) { // 从剪切图片返回的数据 if (data != null) { Bitmap bitmap = data.getParcelableExtra("data"); photo.setImageBitmap(bitmap); } try { // 将临时文件删除 tempFile.delete(); } catch (Exception e) { e.printStackTrace(); } } super.onActivityResult(requestCode, resultCode, data); } }
secondActivity:
package com.dc.lesson07_works;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/** * * * 2016年11月10日 下午5:10:09 */public class SeconedActivity extends Activity { EditText edit; String source; Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_seconed); initView(); } private void initView() { source = getIntent().getStringExtra("source"); edit = (EditText) findViewById(R.id.edit); btn = (Button) findViewById(R.id.btn); //获取启动此界面的意图 Intent intent = getIntent(); //获取启动此界面时存放的数据 switch (source) { case "name": String naems=intent.getStringExtra("tv_name"); edit.setText(naems); Toast.makeText(this, "==========="+naems, Toast.LENGTH_SHORT).show(); edit.setHint("请输入用户名"); break; case "phone": String phones=intent.getStringExtra("tv_phone"); edit.setText(phones); Toast.makeText(this, "==========="+phones, Toast.LENGTH_SHORT).show(); edit.setHint("请输入电话"); break; case "email": String emails=intent.getStringExtra("tv_email"); edit.setText(emails); Toast.makeText(this, "==========="+emails, Toast.LENGTH_SHORT).show(); edit.setHint("请输入邮箱"); break; } btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("content", edit.getText().toString()); switch (source) { case "name": setResult(1, intent); break; case "phone": setResult(2, intent); break; case "email": setResult(3, intent); break; } finish(); } }); }}
代码不是最简便的,功能可以实现,
Intent的使用传递数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。