Activity 带回调启动与带结果返回
来源:互联网 发布:知乎似乎出了点问题 编辑:程序博客网 时间:2024/05/17 02:39
Activity 带回调启动与带结果返回
1.先理解一下相关的知识 Intent意图
- Intent(Context packageContext,,Class cla)用于创建显示意图对象
- Intent(String action):用于创建隐式意图对象
- putExtra(String name ,Xxx value):保存额外数据
- XxxData(Uri data):设置特定格式的URL数据
5.
Activity:活动
1.startActivity(Intent intent):一般启动Activity
2.startActivityForResult(int reqCode,Intent intent):带回调启动activity
3.onActivityResult(int reCode,int resultCode,Intent data):回调方法
4.setResult(int resultCode,Intent data):设置要返回的结果
5.finish():结束当前activity
6.getIntent():得到启动Activity的意图
下面来实现一个小例子:
他的功能很简单:大概就是在第一个界面输入的内容传到第二个界面,在第二界面改变内容,又传回到第一个界面。
MainActivity类
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText= (EditText) findViewById(R.id.editText); bnt1= (Button) findViewById(R.id.next_activity); btn2= (Button) findViewById(R.id.back); bnt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //1创建Intent对象(显示) Intent intent=new Intent(MainActivity.this,SecondcActivity.class); //2通过Iintent携带额外数据 //所以我们来获取输入框输入的内容 editText他的返回值类型是string String message=editText.getText().toString(); intent.putExtra("MESSAGE",message);//(name.value)键值对 name是标识。随便定义,这里点定义为MESSAGE,它是从哪里来呢,就是我们前面的输入框 startActivity(intent); } }); //带回调启动的按钮 btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //创建Intent 对象 Intent intent=new Intent(MainActivity.this,SecondcActivity.class); //2通过intent携带额外数据 String message1=editText.getText().toString(); intent.putExtra("MESSAGE1",message1); //3带回调启动activity 第二个参数需要一个请求码,这里随便定义一个请求码 int requestCode=1; startActivityForResult(intent,requestCode); } });}//一般方法是调用,回调方法重写,所以我们就在这里重写这个回调方法,写好之后先不理他,我们切换到另一个activity@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { //super.onActivityResult(requestCode, resultCode, data);他里面没有代码,可以不用 //三个参数:int requestCode, int resultCode, Intent data:分别表示结果请求码,结果码 ,data就是我们刚刚在另一个activity保存的data /** * 1判断code 2 从data 中取出数据 3显示 */ if (requestCode==1 && resultCode==2){ String result=data.getStringExtra("RESULT"); editText.setText(result); }}
}
SecondcActivity类
package androi.industryplat.com.activitytest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SecondcActivity extends AppCompatActivity {
private EditText ed2;
private Button btn_Callback;
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_secondc); ed2= (EditText) findViewById(R.id.et); btn_Callback= (Button) findViewById(R.id.btn_Callback); Intent intent= getIntent();//得到Intent对象 String message=intent.getStringExtra("MESSAGE1");//根据key来取value ,他返回的就是一个message //然后把放入输入框,既然是要放入输入框,那么我们肯定要拿到输入框才行是吧 ed2.setText(message);//给ed2设置值 就可以把第一个activity输入框输入的设置给SecondcActivity的输入框啦,并显示出来 btn_Callback.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //返回结果之前先保存一个结果 int resultCode=2; //准备一个带额外数据的intent对象 Intent data=new Intent(); //结果是从输入框中获取的 String result=ed2.getText().toString(); data.putExtra("RESULT",result);//key value //设置结果 data 通过RESULT 取得结果 setResult(resultCode,data); finish(); } });}
}
- Activity 带回调启动与带结果返回
- Activity启动另一个Activity,带结果的返回
- Activity带回调的启动方式
- 启动Activity并返回结果
- Android 启动另外activity并返回结果
- startActivityForResult启动另一个Activity并返回结果
- 启动其他Activity并返回结果
- 启动其他的Activity并返回结果
- Android 启动其他Activity并返回结果
- 启动其它Activity并返回结果
- 【Android】启动其他Activity并返回结果
- 启动另外一个activity,并返回结果
- 启动Activity怎么拿到一个返回结果?
- 启动其他Activity并返回结果
- Android--启动另一个Activity并返回结果
- 启动其他Activity并返回结果
- 启动Activity并获取返回结果
- Activity详解三 启动activity并返回结果
- TCP连接复用
- Shell编写比较数值大小
- linux 的各种命令
- 牛客网-DNA合成
- 网站后台改版,迁移老网站中Access数据库中新闻到新网站的方法
- Activity 带回调启动与带结果返回
- poj2393 Yogurt factory 贪心orDP?
- TIM通用定时器(四):PWM模式(PWMOut)
- StrangeIoC框架学习
- CentOS-7下安装MySQL5.6.22
- HTTP,WebService,Socket接口压力测试脚本编写
- 关于JQuery中$().attr()与$().prop()的区别
- php基础+jquery基础
- .lrc 格式的歌词乱码,如何修改后正常显示