移動GIS作業之onActivityResult使用

    先上效果圖

目的就是點輸入起點時,跳轉到一個新的頁面,然後選擇地點後結果回傳

這時就能用到startActivityForResult方法以及onActivityResult方法,首先在左邊的頁面的類中實現這個方法

@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
	}
先分析三個參數requestCode,resultCode,data。


requestCode:請求碼,爲了區分不同來源的請求而設置的一個code,在這裏因爲起點和終點在同一個頁面,所以兩個的requestcode是相同的,如果不同的話就不一樣了。

resultCode:結果碼,這裏就得說到setResult(int resultCode,Intent data)這個方法,是結果的頁面使用的,比如起點、終點指向同一個activity,最後返回的數據是起點,還是終點就依賴resultCode進行區分。

data:是結果頁返回的數據,爲intent類型。

請求頁

@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (REQUEST_CODE == requestCode) {
			switch (resultCode) {
			case 101:
				Bundle bundle = data.getExtras();
				String strReturn = bundle.getString("MSG").trim();
				mQidian.setText(strReturn);
				break;
			case 102:
				Bundle bundle2 = data.getExtras();
				String strReturn2 = bundle2.getString("MSG").trim();
				mZhongdian.setText(strReturn2);
				break;

			default:
				break;
			}
		}
		super.onActivityResult(requestCode, resultCode, data);
	}


	Intent intent = new Intent();
				intent.putExtra("textmsg", "輸入終點...");
				intent.putExtra("request", 102);
				intent.setClass(getActivity(), SelectPoint.class);
				this.startActivityForResult(intent, REQUEST_CODE);

結果頁

	textmsg = this.getIntent().getStringExtra("textmsg");
		request= this.getIntent().getIntExtra("request", 102);

String location = list.get(position).toString().trim();
				Intent intent = new Intent();
				Bundle bundle = new Bundle();
				bundle.putString("MSG", location);
				intent.putExtras(bundle);
				SelectPoint.this.setResult(request, intent);//request是起始頁傳過來的,用於返回區分
				SelectPoint.this.finish();




發佈了46 篇原創文章 · 獲贊 2 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章