1. 程式人生 > >Android在第1個活動(Activity)中開啟第2個活動並傳遞引數(值)

Android在第1個活動(Activity)中開啟第2個活動並傳遞引數(值)

1、第一個活動MainActivity.java

package com.t20.activitydemo;

import com.t20.activitydemo.R.string;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	private EditText etName;
	
	/**
	 * 活動在被系統回收時呼叫,用於臨時儲存資料
	 */
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		// TODO Auto-generated method stub
		super.onSaveInstanceState(outState);
		String str="我覺得我還可以搶救一下!";
		outState.putString("data", str);
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//輸入框
		etName=(EditText) findViewById(R.id.etName);
		
		Log.w("生命週期", "onCreate");
		
		//判斷是否有臨時儲存的資料,有就加載出來
		if(savedInstanceState!=null){
			//獲取儲存的值
			String data=savedInstanceState.getString("data");
			Toast.makeText(MainActivity.this, data, Toast.LENGTH_SHORT).show();
		}
	}	
	
	/**
	 * 啟動第二個活動
	 */
	public void start2(View v){
		//1、準備意圖(想要)
		Intent intent=new Intent(MainActivity.this, SecondActivity.class);
		//-----------------------------起點-----------------終點---------		
		//2、傳值
		String name=etName.getText().toString();
		intent.putExtra("name", name);//第一個引數是key鍵,第二個是值				
		//3、出發
		// (單程)
		startActivity(intent);		
		// (往返)
		startActivityForResult(intent, 2);
		//----------------------意圖---請求碼
	}
	/**
	 * 啟動第三個活動
	 */
	public void start3(View v){
		//1、準備意圖(想要)
		Intent intent=new Intent(MainActivity.this, ThirdActivity.class);
		//-----------------------------起點-----------------終點--------		
		//2、出發(往返)
		startActivityForResult(intent, 3);
		//----------------------意圖---請求碼
	}
	/**
	 * 啟動第四個活動
	 */	 
	 /*
	 注意了:第四個活動需要在AndroidManifest.xml清單檔案中新增<intent-filter>設定,內容如下:
		<activity
            android:name="com.t20.activitydemo.FourthActivity"
            android:label="@string/title_activity_fourth" >
            <intent-filter>
                <action android:name="android.xxx.ooo"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <!-- 把con.xxx.ooo設定為系統預設的一個動作 -->
            </intent-filter>
        </activity>
	 */
	public void start4(View v){
		//使用隱式啟動,呼叫自定義的動作android.xxx.ooo
		Intent intent=new Intent("android.xxx.ooo");
		startActivity(intent);
	}
	/**
	 * 撥打電話
	 * @param v
	 */
	public void call(View v){
		//使用隱式啟動,呼叫系統的動作撥打電話
		Intent intent=new Intent(Intent.ACTION_DIAL);
		intent.setData(Uri.parse("tel:10086"));
		startActivity(intent);
	}
	
	/**
	 * requestCode 請求碼
	 * resultCode  響應碼
	 * data        意圖
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub	
		if(requestCode==2){
			switch (resultCode) {
			case 201:
				//獲取返回的引數
				String data1=data.getStringExtra("data1");
				Toast.makeText(MainActivity.this, data1, Toast.LENGTH_SHORT).show();
				break;
			case 202:
				//獲取返回的引數
				String data2=data.getStringExtra("data2");
				Toast.makeText(MainActivity.this, data2, Toast.LENGTH_SHORT).show();
				break;
			}
		}else if(requestCode==3){
			switch (resultCode) {
			case 301:
				//獲取返回的引數
				String data1=data.getStringExtra("data1");
				Toast.makeText(MainActivity.this, data1, Toast.LENGTH_SHORT).show();
				break;
			case 302:
				//獲取返回的引數
				String data2=data.getStringExtra("data2");
				Toast.makeText(MainActivity.this, data2, Toast.LENGTH_SHORT).show();
				break;
			}
		}
		
		super.onActivityResult(requestCode, resultCode, data);
	}

}

2、第二個活動SecondActivity.java

package com.t20.activitydemo;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;

public class SecondActivity extends Activity {

	private TextView tvContent;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		//文字
		tvContent=(TextView) findViewById(R.id.tvContent);	
		//獲取意圖傳過來的值
		String name=getIntent().getStringExtra("name");//引數為傳值活動設定的key鍵	
		tvContent.setText(name);
	}
	/**
	 * 第一種情況
	 * @param v
	 */
	public void back1(View v){
		//使用意圖把引數傳回前一個活動
		Intent intent=new Intent();
		intent.putExtra("data1", "我是第1種 情況!");
		setResult(201, intent);
		//-------響應碼--意圖
		finish();//完成,銷燬活動
	}
	/**
	 * 第二種情況
	 * @param v
	 */
	public void back2(View v){
		//使用意圖把引數傳回前一個活動
		Intent intent=new Intent();
		intent.putExtra("data2", "我是第2種 情況!");
		setResult(202, intent);
		//-------響應碼--意圖
		finish();//完成,銷燬活動
	}
}

相關推薦

Android1活動Activity開啟2活動傳遞引數

1、第一個活動MainActivity.javapackage com.t20.activitydemo; import com.t20.activitydemo.R.string; import android.net.Uri; import android.os.Bu

基於快排實現,在N亂序的陣列K大的數Java實現

類似於快速排序,執行一次快速排序之後,每次只選擇一部分繼續執行快速排序,直到找到第K大個元素為止,這個元素在陣列位置後面的元素即為所求。 時間複雜度:O(n) 利用快排的思想,從陣列arr中隨機找出一個元素X,把陣列分成兩部分arr_a和arr_b。 arr_a中的元素比x大,arr_b中的元素比x小。 這

《劍指offer》第二十二題鏈表倒數k結點

st3 大於 ndk 輸入 The col printf find cte // 面試題22:鏈表中倒數第k個結點 // 題目:輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合大多數人的習慣, // 本題從1開始計數,即鏈表的尾結點是倒數第1個結點。例如一個鏈表有

ADF 八篇:傳遞引數Pipeline的Parameter和Variable,Activity的output和應用表示式

Azure Data Factory 系列部落格: ADF 第一篇:Azure Data Factory介紹 ADF 第二篇:使用UI建立資料工廠 ADF 第三篇:Integration runtime和 Linked Service ADF 第四篇:管道的執行和觸發器 ADF 第五篇:轉換資料 ADF 第

LightOJ 1366 - Pair of Touching Circles 在矩形只需要兩圓相外切,有多少種 半徑圓心均為整數

矩形 str air %d pan names map turn tdi 題意:http://www.lightoj.com/volume_showproblem.php?problem=1366 利用圓心距,將各個圓心半徑都模擬出來,然後找到最小矩形 最後求出總數

14_Java面向物件_14天Eclipse高階、類與介面作為引數返回_講義

今日內容介紹 1、Eclipse常用快捷鍵操作 2、Eclipse文件註釋匯出幫助文件 3、Eclipse專案的jar包匯出與使用jar包 4、不同修飾符混合使用細節 5、辨析何時定義變數為成員變數 6、類、抽象類、介面作為方法引數 7、類、抽象類、介面作為方法

彙編基礎練習題14: 編寫排序子程式,把資料區的N個數進行排序資料區可能有多類似13題a1的變數:a2,a3。。。那麼該子程式應該有幾入口引數,然後在主程式驗證。

彙編基礎練習題14: 編寫排序子程式,把資料區中的N個數進行排序(資料區中可能有多個類似13題中a1的變數:a2,a3。。。那麼該子程式應該有幾個入口引數?),然後在主程式中驗證。 編譯工具:Masm for Windows 整合實驗環境2012.5 (附帶一個工具下載地址https

Android應用使用百度地圖API新增標註

網上一些資料這種的內容已經過時了,這裡是最新的內容,如果哪裡不對,請吐槽。。。 1)下載百度地圖移動版API(Android)開發包       要在Android應用中使用百度地圖API,就需要在工程中引用百度地圖API開發包,這個開發包包含兩個檔案: 2)申請A

Activity之間傳遞引數

-------siwuxie095 傳遞簡單資料 (1)首先建立一個專案:SendArgs (2)選擇API:21 Android 5.0 (3)選擇Empty Activity

jquery_trigger() 2用法自定義事件和觸發2作用

jquery的trigger函式用的好,可以節省很多時間。 我覺得trigger有2個用法,還是比較實用的,一個是自定議事件,一個是最基本的觸發。 請看下面例項: <html> <h

Android 以Dialog的方式顯示Activity,並且處理背景四角為圓角,去掉黑角

將Activity以Dialog的方式顯示出來,並不難,只需要在AndroidManifest.xml檔案中配置一下就可以了。 把背景設定成圓角也不是很難,可以自己處理,亦可以直接是背景圖。。。 在我看來,最難得是去掉黑角。黑角是怎麼來的咧? Activity預設的背景是黑

Linq從兩edmx資料庫選取資料進行查找出現錯誤解決 指定的 LINQ 表示式包含對與不同上下文關聯的查詢

總思想:不讓兩個連結(connection)同時發生。儘量使用一個EDMX(在一個EDMX中建立另一個的檢視),如果不可以,需要分別進行查詢不能放在一個語句中 1.http://www.cnblogs.com/Joetao/articles/2106426.html cl

activiti 接收活動任務傳遞引數

1.流程圖 2. 程式碼實現 package com.hxzq.workflow.receive; import java.io.InputStream; import org.activiti.engine.ProcessEngine; import org.ac

Find First and Last Position of Element in Sorted Array數組查找第一元素和最後一個元素

run nbsp arc example col ascend == sea 如果 Given an array of integers nums sorted in ascending order, find the starting and ending positio

eclipsejava Dynamatic web的創建過程或者eclipsejsp的創建或eclipse開發環境jdk,eclipse,tomcat的測試

alt 進行 lan .cn ges log image oct ips 1.啟動eclipse程序。 2.File-New->Dynamatic web project,如圖 3.右擊項目名-->new-->New jsp file---> 點

11節練習題10 查找位數

str idt findmi proc borde 1.3 hidden argc -a 問題描寫敘述 一個長度為L(L ≥1) 的升序序列S。處在第 ? L/2 ? 個位置的數稱為S的中位數。比如,若序列S1=(11,13,15,17,19)S

域名到站點的負載均衡技術一覽主要是探討一臺Nginx抵禦大發的解決方案

零成本 參考 硬件 名詞 virt 很好 web 常見 .com 繼上一篇文章Http://www.cnblogs.com/EasonJim/p/7807794.html中說到的,Nginx雖然很強大,但是面對大並發時,一臺Nginx總是有限的。即使後端有多臺Nginx組成

Java面向對象Eclipse高級、類與接口作為參數返回

思考 per 數學 version 自己 所有 uil 知識點 end 面向對象 今日內容介紹 u Eclipse常用快捷鍵操作 u Eclipse文檔註釋導出幫助文檔 u Eclipse項目的jar包導出與使用jar包 u 不同修飾符混合使用細節 u 辨析何時定

c++ 查詢容器符合條件的元素,返回iteratorfind_if

  #include <iostream> // std::cout #include <algorithm> // std::find_if #include <vector> // std::vector using name