从意图返回结果

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

一、创建主活动

  1. package com.example.androidtest;
  2.  
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.util.Log;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.Button;
  10. import android.widget.Toast;
  11.  
  12. public class MainActivity extends ActionBarActivity implements OnClickListener{
  13. String tag = "AndroidTest";
  14. int request_code = 1;
  15. //当活动首次被创建时调用
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20. Button btn = (Button)this.findViewById(R.id.button1);
  21. btn.setOnClickListener(this);
  22. }
  23. public void onClick(View v)
  24. {
  25. startActivityForResult(new Intent(this, ResultActivity.class), request_code);
  26. }
  27. public void onActivityResult(int requestCode, int resultCode, Intent data){
  28.  
  29. if(requestCode == request_code){//判断请求码
  30. if(resultCode == RESULT_OK){//判断结果码
  31. Toast.makeText(this, data.getData().toString(), Toast.LENGTH_SHORT).show();
  32. }
  33. }
  34. }
  35. }

二、创建另一个活动ResultActivity

视图

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context="${relativePackage}.${activityClass}" >
  6.  
  7. <Button
  8. android:id="@+id/button1"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_alignLeft="@+id/txt_username"
  12. android:layout_below="@+id/txt_username"
  13. android:layout_marginLeft="37dp"
  14. android:layout_marginTop="52dp"
  15. android:text="Button" />
  16.  
  17. <EditText
  18. android:id="@+id/txt_username"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_alignParentTop="true"
  22. android:layout_centerHorizontal="true"
  23. android:layout_marginTop="26dp"
  24. android:ems="10"
  25. android:inputType="textPersonName" />
  26.  
  27. </RelativeLayout>

活动

  1. package com.example.androidtest;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.net.Uri;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11.  
  12. public class ResultActivity extends Activity implements OnClickListener{
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.activity_result);
  18. Button btn = (Button)this.findViewById(R.id.button1);
  19. btn.setOnClickListener(this);
  20. }
  21.  
  22. @Override
  23. public void onClick(View v) {
  24. EditText txt_username = (EditText)findViewById(R.id.txt_username);
  25. Intent data = new Intent();
  26. data.setData(Uri.parse(txt_username.getText().toString()));
  27. setResult(RESULT_OK, data);
  28. finish();//关闭该活动,回到调用它的活动。
  29. }
  30. }

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


标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号