• 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 }

    版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    CentOS Python 安装MySQL-python
    Ubuntu64位安装Adobe Reader 9.5.5
    Codeforces Round #316 (Div. 2) (ABC题)
    cocos2dx 3.2+ 项目创建与问题总汇
    Mongodb的索引
    uva 12083 Guardian of Decency (二分图匹配)
    Linux查看内存使用量和交换区使用量
    053第423题
    [Python]xlrd 读取excel 日期类型2种方式
    求解组合问题的一个迭代算法
  • 原文地址:https://www.cnblogs.com/doodle777/p/Android_Activity_Data.html
Copyright © 2020-2023  润新知