Android学习手记(3) Activity间传递数据

1. 简单数据传递

建立两个Activity,名称分别为MainActivity和TheAty,在MainActivity中新建一个Button,id为btnStartAty。在TheAty中新建一个TextView,id为tv。分别加入如下代码:

MainActivity.java

 1 public class MainActivity extends AppCompatActivity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7 
 8         Button button = (Button)findViewById(R.id.btnStartAty);
 9         button.setOnClickListener(new View.OnClickListener() {
10             @Override
11             public void onClick(View v) {
12                 Intent i = new Intent();
13 
14                 i.setClass(MainActivity.this, TheAty.class);
15                 i.putExtra("data", "hello android");
16 
17                 startActivity(i);
18             }
19         });
20 
21     }
22 }

TheAty.java

 1 public class TheAty extends AppCompatActivity {
 2 
 3     private TextView textv;
 4 
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_the_aty);
 9 
10         Intent i = getIntent();
11 
12         textv = (TextView)findViewById(R.id.tv);
13         textv.setText(i.getStringExtra("data"));
14     }
15 }

其中,Intent i 的作用是作为绑定两个Activity的中介,然后进行string的传递。使用putExtra()的getStringExtra()函数对来实现简单值的传递。

2. 使用Bundle传递数据

MainActivity.java

 1 public class MainActivity extends AppCompatActivity {
 2 
 3     private EditText myText;
 4 
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9 
10         myText = (EditText)findViewById(R.id.editText);
11         Button button = (Button) findViewById(R.id.btnOK);
12 
13         button.setOnClickListener(new View.OnClickListener() {
14             @Override
15             public void onClick(View v) {
16                 String str = myText.getText().toString();
17 
18                 Intent i = new Intent(MainActivity.this, TheAty.class);
19                 Bundle bundle = new Bundle();
20                 bundle.putString("message", str);
21 
22                 i.putExtras(bundle);
23 
24                 startActivity(i);
25             }
26         });
27 
28     }
29 }

TheAty.java

 1 public class TheAty extends AppCompatActivity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_the_aty);
 7 
 8         Bundle bundle = this.getIntent().getExtras();
 9         String mesg = bundle.getString("message");
10 
11         TextView myText = (TextView) findViewById(R.id.tv);
12         myText.setText(mesg);
13     }
14 }

版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:https://www.cnblogs.com/doodle777/p/Android_Activity_Data.html