Api demo源码学习(9)--App/Activity/Receive Result --Activity间传递数据
2011-12-14 20:25
609 查看
本节演示了父Activity跳转到子Activity后,接收子Activity传递回的数据。需要注意在Manifest.xml中注册子Activity。
基本步骤
1)在父Activity这边,Activity跳转时调用startActivityForResult方法,然后重写onActivityResult()方法用于接收子Activity传回的数据。
2)在子Activity这边,调用setResult()函数设置返回值。
具体解释见代码:
父Activity ReceiveResult.java:
子Activity ReceiveResult.java
[align=left]布局文件比较简单,就不放出了,以上即可。[/align]
[align=left]
[/align]
[align=left]下一节:Api demo源码学习(10)--App/Activity/Redirection[/align]
基本步骤
1)在父Activity这边,Activity跳转时调用startActivityForResult方法,然后重写onActivityResult()方法用于接收子Activity传回的数据。
2)在子Activity这边,调用setResult()函数设置返回值。
具体解释见代码:
父Activity ReceiveResult.java:
public class ReceiveResult extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.receive_result); mResults = (TextView)findViewById(R.id.results); mResults.setText(mResults.getText(), TextView.BufferType.EDITABLE); Button getButton = (Button)findViewById(R.id.get); getButton.setOnClickListener(mGetListener); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // 如果有多个子Activity都返回数据的话,可以用requestCode来区分是哪个子Activity返回的数据,但本例中只有一个Activity. if (requestCode == GET_CODE) { Editable text = (Editable)mResults.getText(); // 如果子Activity启动失败或者没有传回参数,则resultCode就为RESULT_CANCELED if (resultCode == RESULT_CANCELED) { text.append("(cancelled)"); // Our protocol with the sending activity is that it will send // text in 'data' as its result. } else { text.append("(okay "); text.append(Integer.toString(resultCode)); text.append(") "); if (data != null) { text.append(data.getAction()); } } text.append("\n"); } } static final private int GET_CODE = 0; private OnClickListener mGetListener = new OnClickListener() { public void onClick(View v) { // 若需获取子Activity传递回来的数值,此处就不再是调用startActivity()函数了,而是调用startActivityForResult()函数, // 参数GET_CODE用来区分是哪个子Activity传回的数据。需要重写onActivityResult()函数。 Intent intent = new Intent(ReceiveResult.this, SendResult.class); startActivityForResult(intent, GET_CODE); } }; private TextView mResults; }
子Activity ReceiveResult.java
public class SendResult extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.send_result); Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(mCorkyListener); button = (Button)findViewById(R.id.violet); button.setOnClickListener(mVioletListener); } private OnClickListener mCorkyListener = new OnClickListener() { public void onClick(View v) { // 在Activity finish之前,调用setResult函数,确定本activity返回的值 setResult(RESULT_OK, (new Intent()).setAction("Corky!")); finish(); } }; private OnClickListener mVioletListener = new OnClickListener() { public void onClick(View v) { // To send a result, simply call setResult() before your // activity is finished. setResult(RESULT_OK, (new Intent()).setAction("Violet!")); finish(); } }; }
[align=left]布局文件比较简单,就不放出了,以上即可。[/align]
[align=left]
[/align]
[align=left]下一节:Api demo源码学习(10)--App/Activity/Redirection[/align]
相关文章推荐
- Api demo源码学习(2)--App/Activity/Custom Dialog --自定义Activity样式
- Api demo源码学习(3)--App/Activity/Custom Title --自定义标题栏
- Api demo源码学习(4)--App/Activity/Dialog --Activity以Dialog形式呈现
- Api demo源码学习(6)--App/Activity/Hello World
- Api demo源码学习(7)--App/Activity/Persistent State
- Api demo源码学习(14)--App/Activity/Translucent && Translucent Blur
- Api demo源码学习(11)--App/Activity/Reorder Activity
- 安卓Api Demo学习 App/Activity/Dialog
- ApiDemo的学习总结,个人心得,App模块之Activity
- 安卓ApiDemos学习 app/Activity/ReceiveResult
- 安卓Api Demo学习 App/Activity/Custom Title
- [转]Api demo源码进修(3)--App/Activity/Custom Title --自定义题目栏
- Api demo源码学习(17)--App/Device Admin
- 人人网SDK Demo项目学习 3 在apilist中绑定事件调用Activity
- 短线装逼,intent传递数据,onActivityResult,嗯 很厉害
- 第五天:Bundle数据传递、StartActivityForResult传值
- android 学习receiver和发送广播,其中监听其他activity的启动demo;给activity加自定义权限只有指定有权限的app可以监听到
- intent传递数据的二种方式startActivityForResult为什么不行?
- onActivityResult的用法-Activity间回调传递数据
- 【第三篇】学习 android 事件总线androidEventbus之list数据事件的传递,发送list数据事件到另外一个Activity