zoukankan      html  css  js  c++  java
  • 安卓--使用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进行注册。

  • 相关阅读:
    使用 mysql_random_data_load 生成随机数据
    TeamViewer 运行 AlterID 时候报错Cloud not create a fake UUID
    1.6 在WHERE子句中引用取别名的列
    本地登录多实例mysql ,默认登录数据库问题
    统计前10位的占用空间较大的目录
    Oracle查看用户权限
    [LeetCode]Binary Tree Preorder Traversal
    [LeetCode]Insertion Sort List
    [LeetCode]Implement strStr()
    [LeetCode]Remove Element
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/5417141.html
Copyright © 2011-2022 走看看