在Activity之间传递数据
<1>传递基本数据类型
基本数据类型:
整:byte short int long
浮点:float double
布尔:boolean
字符:char
基本数据类型:
整:byte short int long
浮点:float double
布尔:boolean
字符:char
引用:String
代码及运行结果
---------------------activity_main_xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.g160628_11_widget.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" android:id="@+id/et_main_uname"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="写心情" android:onClick="xinq"/> <!--文本框--> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_main_showThink"/> </LinearLayout>
------------------------------------MainActivity.java
package com.example.g160628_11_widget; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private EditText et_main_uname; private TextView tv_main_showThink; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_main_uname = (EditText) findViewById(R.id.et_main_uname); tv_main_showThink = (TextView) findViewById(R.id.tv_main_showThink); /* String content=getIntent().getStringExtra("content"); tv_main_showThink.setText(content);*/ } public void xinq(View view){ //点按钮拿到用户名 String uname=et_main_uname.getText().toString(); //邮递员 Intent intent=new Intent(this,ThinkActivity.class); intent.putExtra("uname",uname); //很普通的跳 //startActivity(intent); //有目的的跳 startActivityForResult(intent,0x201); } //专门有一个方法来拿结果数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String content=data.getStringExtra("content"); tv_main_showThink.setText(content); } }
---------activity_think.xml
<?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:layout_width="wrap_content" android:layout_height="50dp" android:id="@+id/tv_think_showName" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="上面是文本框,接收用户名的"/> <EditText android:layout_width="368dp" android:layout_height="wrap_content" android:lines="5" android:hint="请输入心情" android:gravity="top" android:id="@+id/et_think_content" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="确定" android:onClick="ok"/> </LinearLayout>
------------------ThinkActivity.java
package com.example.g160628_11_widget; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class ThinkActivity extends AppCompatActivity { private TextView tv_think_showName; private EditText et_think_content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_think); tv_think_showName = (TextView) findViewById(R.id.tv_think_showName); et_think_content = (EditText) findViewById(R.id.et_think_content); //获取第一个页面传递过来的数据(获取邮递员的值) String uname=getIntent().getStringExtra("uname"); tv_think_showName.setText("你好:"+uname); } public void ok(View view){ //拿心情的内容 String content=et_think_content.getText().toString(); Intent intent=new Intent(this,MainActivity.class); intent.putExtra("content",content); //设置结果 setResult(0x100,intent); //干掉自己 finish(); //startActivity(intent); } }
效果: