• 安卓--使用Intent实现Activity之间传值与跳转


    http://blog.csdn.net/cjjky/article/details/6337447 

    在一个Android的应用程序中,很少只存在一个Activity,一般都有多个Activity,如何在多个Activity之间进行跳转和传值呢?我们可以通过 Intent 对象来实现上面所述的功能。本例通过在FirstActivity中实现两个数进行相加,把相加的结果值通过Intent把值传递到SecondActivity中。

          我们新建一个Android的工程,有两个Activity,分别为FirstActivity 和 SecondActivity ,同时在资源文件下的 res/layout 目录下也有两个布局文件,分别为 main.xml【对应FirstActivity】和secondlayout.xml【对应SecondActivity】,目录的结构图如下:

    在 main.xml 布局文件中添加两个EditText控件,一个TextView控件,一个Button按钮,代码如下:

    [c-sharp] view plain copy
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:orientation="vertical"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent">  
    6. <EditText  
    7.     android:id="@+id/firstNum"  
    8.     android:layout_width="fill_parent"  
    9.     android:layout_height="wrap_content"/>  
    10. <TextView    
    11.     android:layout_width="fill_parent"   
    12.     android:layout_height="wrap_content"   
    13.     android:text="加"  
    14.     android:textSize="20sp"  
    15.     />  
    16. <EditText  
    17.     android:id="@+id/secondNum"  
    18.     android:layout_width="fill_parent"  
    19.     android:layout_height="wrap_content"/>  
    20. <Button  
    21.     android:id="@+id/btnCalc"  
    22.     android:layout_width="fill_parent"  
    23.     android:layout_height="wrap_content"  
    24.     android:text="计算结果"/>  
    25. </LinearLayout>  

    在secondlayout.xml布局文件中,添加一个EditText控件来显示从FirstActivity中传过来的值。代码如下:

    [c-sharp] view plain copy
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout  
    3.   xmlns:android="http://schemas.android.com/apk/res/android"  
    4.   android:layout_width="fill_parent"  
    5.   android:layout_height="fill_parent">  
    6.   <EditText  
    7.      android:id="@+id/result"  
    8.      android:layout_width="fill_parent"  
    9.      android:layout_height="wrap_content"/>  
    10. </LinearLayout>  

    在FirstActivity中的代码如下:

    [c-sharp] view plain copy
    1. package com.andyidea.test;  
    2.   
    3. import android.app.Activity;  
    4. import android.content.Intent;  
    5. import android.os.Bundle;  
    6. import android.view.View;  
    7. import android.widget.Button;  
    8. import android.widget.EditText;  
    9.   
    10. public class FirstActivity extends Activity {  
    11.       
    12.     EditText firstNum,secondNum;  
    13.     Button calc;  
    14.       
    15.     @Override  
    16.     public void onCreate(Bundle savedInstanceState) {  
    17.         super.onCreate(savedInstanceState);  
    18.         setContentView(R.layout.main);  
    19.           
    20.         firstNum = (EditText)findViewById(R.id.firstNum);  
    21.         secondNum = (EditText)findViewById(R.id.secondNum);  
    22.         calc = (Button)findViewById(R.id.btnCalc);  
    23.         calc.setOnClickListener(new View.OnClickListener() {  
    24.               
    25.         @Override  
    26.         public void onClick(View v) {  
    27.                 String num1 = firstNum.getText().toString();  
    28.                 String num2 = secondNum.getText().toString();  
    29.                   
    30.             Intent intent = new Intent();  
    31.             intent.putExtra("one", num1);  
    32.             intent.putExtra("two", num2);  
    33.             intent.setClass(FirstActivity.this, SecondActivity.class);  
    34.                 startActivity(intent);  
    35.             }  
    36.         });  
    37.     }  
    38. }  

    在SecondActivity中的代码如下:

    [c-sharp] view plain copy
    1. package com.andyidea.test;  
    2.   
    3. import android.app.Activity;  
    4. import android.content.Intent;  
    5. import android.os.Bundle;  
    6. import android.widget.EditText;  
    7.   
    8. public class SecondActivity extends Activity {  
    9.   
    10.     EditText result;  
    11.       
    12.     public void onCreate(Bundle savedInstanceState) {  
    13.         super.onCreate(savedInstanceState);  
    14.         setContentView(R.layout.secondlayout);  
    15.           
    16.         result = (EditText)findViewById(R.id.result);  
    17.           
    18.         Intent intent = getIntent();  
    19.         String num1 = intent.getStringExtra("one");  
    20.         String num2 = intent.getStringExtra("two");  
    21.         int ret = Integer.parseInt(num1) + Integer.parseInt(num2);  
    22.         result.setText(ret+"");  
    23.     }  
    24. }  

    同时别忘了在Manifest配置文件中对SecondActivity进行注册。

  • 相关阅读:
    allocation size overflow
    数据库隔离级别深入理解(ORACLE)
    查看Orcale数据里的表是否有变化
    意外发现抽象类的构造器
    C语言学习快速笔记
    由javascript的闭包引申到程序语言编译上的自由变量作用域的考量
    easyui的datagrid的列checkbox自定义增加disabled选项
    数据库连接不关闭造成的问题以及RowSet的使用
    Quartz的JobDetail没有触发器指向时会被删除的问题
    发现浏览器开发工具的一个小问题
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/5417141.html
Copyright © 2020-2023  润新知