zoukankan      html  css  js  c++  java
  • Android学习——Intent传递数据

    向下一个应用传递数据

    1  button1.setOnClickListener(new View.OnClickListener(){
    2      @Override
    3      public void onClick(View v) {
    4           String data = "你好呀,SecondActivity";
    5          Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
    6          intent.putExtra("extra_data",data);//第一个参数是键,第二个参数才是真正的数据
    7          startActivity(intent);
    8      }
    9  });

    在SecondActivity重写的onCreate方法中,加入如下代码:

    1  @Override
    2  protected void onCreate(Bundle savedInstanceState) {
    3      super.onCreate(savedInstanceState);
    4      setContentView(R.layout.second_layout);
    5      Intent intent = getIntent();//注意这里是getIntent()
    6      String data = intent.getStringExtra("extra_data");
    7      Log.d("SecondActivity",data);
    8 //····
    9  }

    返回数据给上一个活动

    1  button1.setOnClickListener(new View.OnClickListener(){
    2      @Override
    3      public void onClick(View v) {
    4          Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
    5          startActivityForResult(intent,1);
    6      }
    7  });
     1 Button button2 = (Button)findViewById(R.id.button_2);
     2 button2.setOnClickListener(new View.OnClickListener(){
     3     @Override
     4     public void onClick(View v) {
     5         Intent intent = new Intent();
     6         intent.putExtra("data_return","你好呀 FirstActivity");
     7         setResult(RESULT_OK,intent);
     8         finish();
     9     }
    10 });

    在FirstActivity中重写onActivityResult()方法来得到返回数据:

     1 @Override
     2 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     3     switch (requestCode){
     4         case 1:
     5             if(resultCode == RESULT_OK){
     6                 String returnedData = data.getStringExtra("data_return");
     7                 Log.d("FirstActivity",returnedData);
     8             }
     9             break;
    10             default:
    11     }
    12     super.onActivityResult(requestCode, resultCode, data);
    13 }

    如果用户不是通过点击button 2按钮返回到FirstActivity,而是通过按下手机的Back键回到FirstActivity,这个时候我们就要监听Back键来发送数据给上层应用了:

    1     @Override
    2     public void onBackPressed(){
    3         Intent intent = new Intent();
    4         intent.putExtra("data_return","你好呀,,,FirstActivity");
    5         setResult(RESULT_OK,intent);
    6         finish();
    7     }
  • 相关阅读:
    luogu1197 [JSOI2008]星球大战
    luogu2085 最小函数值
    Vijos 1144 小胖守皇宫 【树形DP】
    洛谷 P1941 飞扬的小鸟 【DP+众多特判】
    codevs 1516 平均分数 【数学推理+求逆序对】
    tyvj 1936 太空战队 【强连通分量】
    USACO 2.4 Overfencing 【种子染色法+递推】
    code[vs] 2488 绿豆蛙的归宿【反向拓扑+DP】
    USACO 2.3 Zero Sum 【搜索+字符串处理+模拟计算】
    USACO 2.3 Cow Pedigrees 【DP+前缀和优化】
  • 原文地址:https://www.cnblogs.com/znjy/p/14907899.html
Copyright © 2011-2022 走看看