1. 程式人生 > >Android—startActivityForResult的用法

Android—startActivityForResult的用法

 在啟動另外一個Activity的時候,有兩種方法,一種是直接使用startActivity,另外一種就是使用startActivityForResult。前一種想必大家都明白怎麼使用了,我就不廢話了。本文主要通過一個Demo來學習一下第二種。

      startActivityForResult的主要作用就是它可以回傳資料,假設我們有兩個頁面,首先進入第一個頁面,裡面有一個按鈕,用於進入下一個頁面,當進入下一個頁面時,進行設定操作,並在其finish()動作或者back動作後,將設定的值回傳給第一個頁面,從而第一個頁面來顯示所得到的值。這個有一點像回撥方法,就是在第二個頁面finish()動作或者back動作後,會回撥第一個頁面的onActivityResult()方法,所以我們可以重寫一下這個方法。直接看程式碼吧:

//第一個介面程式碼:

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

public class ActivityResultDemoActivity extends Activity
{
	private Button button_start_task;
	private TextView TextView_result;
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		button_start_task=(Button) findViewById(R.id.button_start_task);
		TextView_result=(TextView) findViewById(R.id.TextView_result);
		button_start_task.setOnClickListener(new button_start_task_Listener());
	}
	private class button_start_task_Listener implements OnClickListener
	{
		public void onClick(View v)
		{
			Intent intent=new Intent(ActivityResultDemoActivity.this,SimpleTaskActivity.class);
			//關鍵點來了,使用startActivityForResult來啟動
			startActivityForResult(intent, 100);
		}
	}
	/**
	 * 複寫onActivityResult,這個方法
	 * 是要等到SimpleTaskActivity點了提交過後才會執行的
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{
		//可以根據多個請求程式碼來作相應的操作
		if(20==resultCode)
		{
			String bookname=data.getExtras().getString("bookname");
			String booksale=data.getExtras().getString("booksale");
			TextView_result.setText("書籍名稱:"+bookname+"書籍價錢"+booksale+"元");
		}
		super.onActivityResult(requestCode, resultCode, data);
	}
}
//第二個介面程式碼:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class SimpleTaskActivity extends Activity
{
	private EditText EditText_bookname;
	private EditText EditText_booksale;
	private Button Button_task_fulfill;

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main2);
		
		EditText_bookname=(EditText) findViewById(R.id.EditText_bookname);
		EditText_booksale=(EditText) findViewById(R.id.EditText_booksale);
		Button_task_fulfill=(Button) findViewById(R.id.Button_task_fulfill);
		Button_task_fulfill.setOnClickListener(new Button_task_fulfill_Listener());
	}
	private class Button_task_fulfill_Listener implements OnClickListener
	{
		public void onClick(View v)
		{
			String str_bookname=EditText_bookname.getText().toString();
			String str_booksale=EditText_booksale.getText().toString();
			
			//判斷空,我就不判斷了。。。。
			Intent data=new Intent();
			data.putExtra("bookname", str_bookname);
			data.putExtra("booksale", str_booksale);
			//請求程式碼可以自己設定,這裡設定成20
			setResult(20, data);
			//關閉掉這個Activity
			finish();
		}
	}
}



相關推薦

android: startActivityForResult用法(啟動其他Activity並返回結果)

startActivityForResult:該方法用於啟動指定Activity,而且期望獲取指定Activity返回的結果。 例如應用程式第一個介面需要使用者進行選擇,但是這種選擇的列表資料很複雜,需要啟動另一個Activity讓使用者選擇。當用戶在第二個Activity

Android startActivityForResult用法詳解

一、如果想在Activity中得到新開啟Activity 關閉後返回的資料,需要使用系統提供的startActivityForResult(Intent intent, int requestCode)方法開啟新的Activity,新的Activity 關閉後會向前面的Activity傳回資料,為了得到傳

AndroidstartActivityForResult用法

 在啟動另外一個Activity的時候,有兩種方法,一種是直接使用startActivity,另外一種就是使用startActivityForResult。前一種想必大家都明白怎麼使用了,我就不廢話了。本文主要通過一個Demo來學習一下第二種。       startAc

Android startActivityForResult基本用法

startActivityForResult和startActivity的區別是一個是帶值傳輸,一個是直接跳轉 具體用法如下: activity_main: <RelativeLayout xm

Android TabActivity用法

tor icon sans post list star per -h text TabActivity 首先Android裏面有個名為TabActivity來給我們方便使用。當中有下面能夠關註的函數: public TabHost getTabHost (

Android ViewPager用法小結

ext.get try mob too word shc 由於 tool 谷歌 android-support-v4.jar 是谷歌提供給我們的一個兼容低版本號安卓設備的軟件包。裏面包囊了僅僅有在 Android 3.0 以上可用的API。而 ViewP

安卓startActivityForResult用法

protected sources oid int string tac get equal finish startActivityForResult的作用就是它可以回傳數據,假如我們有兩個頁面A和B,點擊A頁面的一個按鈕,進入下一個頁面B,進入頁面B後,進行設置操作,並

Android Service用法知識點的講解

ima code tco 用戶交互 進行 則無 start detail load Android Service 學習Service相關知識點: android service 的基礎知識,生命周期,service分類,運行地點(本地服務,遠程服務),運行類型(前臺服務

android ListView 用法

and andro 適應 wrap 對數 字符 常用屬性 滑動條 lba 在Android開發中,listView 是比較常用的開發組件,它以列表的形式展現具體的內容,並且根據數據的長度自適應顯示。 列表的顯示需要三個元素: listView: 用來展示列表的view;

Android IntentService用法和原始碼分析

關於IntentService的介紹,我個人覺得還是先看官方描述比較好: IntentService is a base class for Services that handle asynchronous requests (expressed as Intents) o

android plurals用法

參考 android plurals用法 對一個給定的語言和數字來說,決定使用哪一個case的規則是很複雜的,所以android提供了方法getQuantityString(),它可以用來為你選擇合適的資源。 節點: <resources> 必

Android列表用法之一:實戰簡單ListView

ListView這個列表控制元件,是我們在開發當中使用頻率比較高的一個控制元件。 既然是使用頻率比較高,那麼我們就有必要將它的使用方式儲存,方便以後直接複製貼上,把注意力放在架構上面,不用經常做程式碼搬運工(重複搬運)。 當然Android的API也提供了許多建立ListView介面卡的快

Android列表用法之二:實戰ListView高階用法

在我們的專案中,並不是所有列表都是簡單的使用。類似於新聞列表、QQ聊天列表等,具有圖文並排的列表,每個item都有它不同的佈局型別,都有其不同的實現方式。這類複雜的列表表現形式,在各類知名應用當中,不可或缺的存在著。今天我們就來看看,使用ListView能不能實現此類複雜佈局。 今天的例

子父控制元件獲取焦點問題:android:descendantFocusability用法簡析

開發中很常見的一個問題,專案中的listview不僅僅是簡單的文字,常常需要自己定義listview,自己的Adapter去繼承BaseAdapter,在adapter中按照需求進行編寫,問題就出現了,可能會發生點選每一個item的時候沒有反應,無法獲取的焦點。原因多半是由於在你自己

startActivityForResult用法詳解

一、如果想在Activity中得到新開啟Activity 關閉後返回的資料,需要使用系統提供的startActivityForResult(Intent intent, int requestCode)方法開啟新的Activity,新的Activity 關閉後會向前面的Activity傳回資料,為了

Android getevent用法詳解

getevent 指令用於獲取 input 輸入事件,比如獲取按鍵上報資訊、獲取觸控式螢幕上報資訊等。 指令原始碼路徑:/system/core/toolbox/getevent.c getevent -h:檢視 getevent 幫助資訊 [email pr

android startActivityForResult與startActivity的不同之處

startActivity 僅僅是跳轉到目標頁面,若是想跳回當前頁面,則必須再使用一次startActivity startActivityForResult 可以一次性完成這項任務,假若從T1Activity跳轉到下一個T2Activity,而當這個T2Activit

[Android] ArrayList用法、與Array的差別

ArrayList與Array差在於因為他是一個寫好的類別,有很多可以直接用的程式碼。 ArrayList使用方法: 1.建構 ArrayList<String> myList = new ArrayList<String>(); //指定是String的型態 ArrayLis

android Mediaplayer用法

package com.terry;import java.io.File;import java.util.ArrayList;import java.util.List; import android.app.ListActivity;import android.media.MediaPlayer;im

Android adb用法

引言 本文基於Android官方文件, 以及個人工作的使用經驗, 總結下adb的常用用法, 備忘. 1, adb簡介 adb全名Andorid Debug Bridge. 顧名思義, 這是一個Debug工具. 然而, 為何稱之為Bridge呢? 因為adb是一個標準的CS