Android中的onActivityResult和setResult方法的使用

startActivityForResult(Intent intent,int requestCode)onActivityResult(int requestCode, int resultCode,Intent data)方法:

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {Button button =(Button)this.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener(){//点击该按钮会打开一个新的Activitypublicvoid onClick(View v) {//第二个参数为请求码,可以根据业务需求自己编号startActivityForResult(new Intent(MainActivity.this, NewActivity.class), 1);}});}//第一个参数为请求码,即调用startActivityForResult()传递过去的值//第二个参数为结果码,结果码用于标识返回数据来自哪个新Activity @Override protected voidonActivityResult(int requestCode, int resultCode, Intent data) {String result =data.getExtras().getString(“result”));//得到新Activity关闭后返回的数据}}

请求码的作用:

onActivityResult(int requestCode, int resultCode, Intent data)@Override public void onCreate(Bundle savedInstanceState) {….button1.setOnClickListener(newView.OnClickListener(){public void onClick(View v) {startActivityForResult (newIntent(MainActivity.this, NewActivity.class), 1);}});button2.setOnClickListener(newView.OnClickListener(){public void onClick(View v) {startActivityForResult (newIntent(MainActivity.this, NewActivity.class), 2);}});@Override protected voidonActivityResult(int requestCode, int resultCode, Intent data) {switch(requestCode){case 1://来自按钮1的请求,作相应业务处理case 2://来自按钮2的请求,作相应业务处理}}

结果码的作用:用于标示返回结果的来源。

onActivityResult(int requestCode, int resultCode, Intentdata)public class ResultActivity extends Activity {…..ResultActivity.this.setResult(1, intent);ResultActivity.this.finish();}public class NewActivity extends Activity {……NewActivity.this.setResult(2,intent);NewActivity.this.finish();}public class MainActivity extends Activity { // 在该Activity会打开ResultActivity和NewActivity@Override protected voidonActivityResult(int requestCode, int resultCode, Intent data) {switch(resultCode){case 1:// ResultActivity的返回数据case 2:// NewActivity的返回数据}}}

跳转的目标Activity所要做的就是返回数据/结果,setResult(int resultCode)只返回结果不带数据,或者setResult(int resultCode, Intent data)onActivityResult(intrequestCode, int resultCode, Intent data),,这里的requestCode就是startActivityForResult的requestCode,resultCode就是setResult里面的resultCode,返回的数据在data里面

坚韧是成功的一大要素,只要在门上敲得够久够大声,终会把人唤醒的。

Android中的onActivityResult和setResult方法的使用

相关文章:

你感兴趣的文章:

标签云: