Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android:從另外一個activity中返回數據

android:從另外一個activity中返回數據

編輯:關於android開發

android:從另外一個activity中返回數據


首先看一下activity返回數據的結構圖

\

以前我們啟動另外一個activity用的是

startActivity(Intent intent)

方法 而若想打開另外一個activity並且返回結果 就要使用
startActivityForResult(Intent intent,int requestCode)
intent就不用說了 其中requestCode就是請求碼 為了在另外一個activity中分辨 每個請求碼應該做的事情

 

具體作用是:\

我們實現的效果是:

主界面是這樣\當我們點擊選擇按鈕後打開另外一個activity\當我們點擊號碼時,結束這個activity並且在主activity中的編輯框中顯示這個號碼

具體實現代碼如下。

MainActivity

 

package com.example.activityforresult;

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

public class MainActivity extends Activity {

	private EditText editText;
	private Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		editText=(EditText) findViewById(R.id.editText);
		button=(Button) findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				//從另外一個activity得到結果不能再用startActivity()方法要用這個方法
				startActivityForResult(new Intent(MainActivity.this,ResultActivity.class),
						0x1);
			}
		});
	}
	/*
	 * 如果要得到返回的結果 一定要實現這個類
	 * */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		//如果data等於null返回
		if(data==null)
			return ;
		String phoneNumber=data.getExtras().getString("phoneNumber");
		//更新編輯框內容為所選的號碼
		editText.setText(phoneNumber);
	}
}

在ResultActivity中 需要用setResult(int resultCode, Intent data);方法返回選擇的號碼。其中resultCode是一個int型,而data是Intent型 。新建一個intent對象就好了

 

然後調用finish()方法結束這個activity 別忘記在AndroidManifest配置一下信息如下

 

        


 

所以ResultActivity代碼如下

 

package com.example.activityforresult;

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

public class ResultActivity extends Activity{
	private TextView textView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_result);
		textView=(TextView) findViewById(R.id.textView);
		textView.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent=new Intent();
				intent.putExtra("phoneNumber", textView.getText().toString());
				setResult(0x1, intent);
				finish();
			}
		});
	}

}
activity_main.xml

 

 


    

activity_result.xml

 

 



    
    



 

這是運行結果

\
 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved