从意图返回结果

作者:追风剑情 发布于:2015-7-21 20:44 分类:Android

一、创建主活动

package com.example.androidtest;

import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements OnClickListener{
	String tag = "AndroidTest";
	int request_code = 1;
	
	//当活动首次被创建时调用
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Button btn = (Button)this.findViewById(R.id.button1);
		btn.setOnClickListener(this);
	}
	
	public void onClick(View v)
	{
		startActivityForResult(new Intent(this, ResultActivity.class), request_code);
	}
	
	public void onActivityResult(int requestCode, int resultCode, Intent data){

		if(requestCode == request_code){//判断请求码
			if(resultCode == RESULT_OK){//判断结果码
				Toast.makeText(this, data.getData().toString(), Toast.LENGTH_SHORT).show();
			}
		}
	}
}

二、创建另一个活动ResultActivity

视图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txt_username"
        android:layout_below="@+id/txt_username"
        android:layout_marginLeft="37dp"
        android:layout_marginTop="52dp"
        android:text="Button" />

    <EditText
        android:id="@+id/txt_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:ems="10"
        android:inputType="textPersonName" />

</RelativeLayout>

活动

package com.example.androidtest;

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

public class ResultActivity extends Activity implements OnClickListener{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_result);
		
		Button btn = (Button)this.findViewById(R.id.button1);
		btn.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		
		EditText txt_username = (EditText)findViewById(R.id.txt_username);
		
		Intent data = new Intent();
		data.setData(Uri.parse(txt_username.getText().toString()));
		setResult(RESULT_OK, data);
		finish();//关闭该活动,回到调用它的活动。
	}
}

注意: 如果请求码设为-1,则使用startActivityForResult()方法来调用活动与使用startActivity()方法来调用是等同的。也就是说,没有结果返回。


标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号