传播智客学习笔记--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);
    }
    
    
    
}
View Code

 

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();
    }
}
View Code

 

posted @ 2015-01-16 21:58  lya_nju  阅读(137)  评论(0编辑  收藏  举报