传播智客学习笔记--L25 添加多个Activity
软件界面
Intent作用:激活组件 + 附带数据
setClassName 可以打开其他项目中的Activity
传递数据
Bundle 相对于一个Map,不过提供了常用数据类型的put方法
得到数据
新打开的Activity返回数据
this.startActivityForResult(intent, requestCode);
OtherActivity将返回的数据放在哪?
OtherActivity在什么时候返回数据?
MainActivity如何定义处理返回数据的方法?
package com.njulya.mulitactivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { EditText contSend; TextView contReciv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); contSend = (EditText)this.findViewById(R.id.send_content); contReciv = (TextView)this.findViewById(R.id.show_content); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void openActivity(View v){ Intent intent = new Intent(); intent.setClass(this, OtherActivity.class); intent.putExtra("content", contSend.getText().toString()); this.startActivityForResult(intent, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String str = data.getStringExtra("content"); contReciv.setText(str); } }
package com.njulya.mulitactivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class OtherActivity extends Activity { EditText contSend; TextView contReciv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.other_activity); contReciv = (TextView)findViewById(R.id.show_content); contSend = (EditText)findViewById(R.id.send_content); Intent intent = this.getIntent(); String content = intent.getStringExtra("content"); contReciv.setText(content); } public void closeActivity(View v){ Intent data = new Intent(); data.putExtra("content", contSend.getText().toString()); this.setResult(2, data); this.finish(); } }