博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 之startActivityForReult 与 onActivityResult简介
阅读量:2157 次
发布时间:2019-05-01

本文共 2543 字,大约阅读时间需要 8 分钟。

startActivityForResult与startActivity的不同之处在于

1、startActivity( ) 
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( ) 
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。

 

相关函数:

startActivityForResult(Intent intent, Int requestCode)
setResut(int resultCode, Intent intent)
onActivityResult(int requestCode, int resultCode, Intent intent)

-----------MainActivity----------------------------------------------

public class MainActivity extends Activity {

TextView t;
public static final int REQUSET = 110;  //一定要>=0
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  t = (TextView)findViewById(R.id.toOther);
  Button b = (Button)findViewById(R.id.toOther_btn);
  b.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
Intent in = new Intent();
in.setClass(getApplicationContext(), OtherActivity.class);
startActivityForResult(in, REQUSET);
    }
 });
}
/**--requestCode:请求码 resultCode:结果码,用于标识返回数据来自哪个新Activity */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode == REQUSET && resultCode == OtherActivity.RESULT_OK){
  String str = "帐号:"+data.getStringExtra(OtherActivity.KEY_USER_ID)+"\n密码:"
  +data.getStringExtra(OtherActivity.KEY_USER_PASSWORD);
  t.setText(str);
}
Toast.makeText(getApplicationContext(), "requestCode=" + requestCode + "::::" + "resultCode=" + resultCode, Toast.LENGTH_LONG).show();
}
}

------------------OtherActivity--------------------------------------------------------------------

public class OtherActivity extends Activity {

EditText eID ;
EditText ePASSWORD ;
Button b;
public static final String KEY_USER_ID = "USER_ID";
public static final String KEY_USER_PASSWORD = "USER_PASSWORD";

public static final int RESULT_OK = 111;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_other);
  eID = (EditText)findViewById(R.id.user_ID);
  ePASSWORD = (EditText)findViewById(R.id.user_PASSWORD);
  b = (Button)findViewById(R.id.toMain_btn);
  b.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
    Intent in = new Intent();
    in.putExtra(KEY_USER_ID, eID.getText().toString());
    in.putExtra(KEY_USER_PASSWORD, ePASSWORD.getText().toString());
    setResult(RESULT_OK,in);
    finish();
     }
});
     }
}

你可能感兴趣的文章
【LEETCODE】241-Different Ways to Add Parentheses
查看>>
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>
【LEETCODE】20-Valid Parentheses
查看>>
【LEETCODE】290-Word Pattern
查看>>
【LEETCODE】36-Valid Sudoku
查看>>
【LEETCODE】205-Isomorphic Strings
查看>>
【LEETCODE】204-Count Primes
查看>>
【LEETCODE】228-Summary Ranges
查看>>
【LEETCODE】27-Remove Element
查看>>
【LEETCODE】66-Plus One
查看>>
【LEETCODE】26-Remove Duplicates from Sorted Array
查看>>
【LEETCODE】118-Pascal's Triangle
查看>>
【LEETCODE】119-Pascal's Triangle II
查看>>
【LEETCODE】88-Merge Sorted Array
查看>>
【LEETCODE】19-Remove Nth Node From End of List
查看>>
【LEETCODE】125-Valid Palindrome
查看>>
【LEETCODE】28-Implement strStr()
查看>>