-------siwuxie095
传递简单数据
(1)首先创建一个项目:SendArgs
(2)选择API:21 Android 5.0
(3)选择
Empty Activity
(4)默认
(5)完成,一览:
(6)先进
activity_main.xml 里的 Text 手动添加一个Button,
删掉自带的TextView,如下:
<?xml <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 <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 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() { @Override public //创建一个new Intent()实例,传入Context和Class类型的参数 //对应MainActivity.this 和 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 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】