Activity之间传递参数(一)
-------siwuxie095
传递简单数据
(1)首先创建一个项目:SendArgs
(2)选择API:21 Android 5.0
(3)选择 Empty Activity
(4)默认
(5)完成,一览:
(6)先进 activity_main.xml 里的 Text 手动添加一个Button,
删掉自带的TextView,如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.siwuxie095.sendargs.MainActivity">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnStartAty" android:text="启动另一个Activity"/>
</RelativeLayout> |
(7)new 一个 Empty Activity:TheAty
(8)给activity_the_aty.xml添加一个TextView,如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_the_aty" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.siwuxie095.sendargs.TheAty">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World" android:id="@+id/tv"/>
</RelativeLayout> |
(9)在MainActivity.java 中添加:findViewById(R.id.btnStartAty)
和setOnClickListener(new OnClick…),会自动生成代码,接着在onClick()
函数里创建一个Intent,通过 Intent 的 putExtra() 传参,最后通过 startActivity()
把Intent对象传入:
package com.siwuxie095.sendargs;
import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建一个new Intent()实例,传入Context和Class类型的参数 //对应MainActivity.this 和 被启动的Activity的类定义 TheAty.class Intent i = new Intent(MainActivity.this,TheAty.class); //通过Intent对象,调用putExtra()方法,传参 //这里传入String和String类型的参数,实际上就是键值对 i.putExtra("data","你好 我是传递的参数"); //传入i startActivity(i); } }); } } |
(10)在 TheAty.java 中获取数据,如下:
package com.siwuxie095.sendargs;
import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView;
public class TheAty extends AppCompatActivity {
private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_the_aty);
//TheAty是通过MainActivity中的Intent启动,直接通过getIntent()方法 //获取与这个Activity相关的Intent Intent i=getIntent();
//要访问TextView,先在上面声明 //findViewById()的返回值在编译时只能查看到类型是View,而事实上是TextView类型 //需要强制类型转换 tv= (TextView) findViewById(R.id.tv); //调用setText()方法设置字符串,这里字符串通过Intent获取 tv.setText(i.getStringExtra("data"));
} } |
(11)发送到手机,运行一览:
【made by siwuxie095】
posted on 2016-12-29 20:00 siwuxie095 阅读(448) 评论(0) 编辑 收藏 举报