startActivityForResult的使用
来源:互联网 发布:巫师3和老滚5 知乎 编辑:程序博客网 时间:2024/06/02 20:34
1.需求
1.1 从MainActivity启动T2Activity,并希望T2Activity为MainActivity返回数据,而不需要再一次使用startActivity()
2.实现
….在这个例子里面,在T2Activity中点击按钮调用finish都会回到MainActivity,但是通过startActivity启动的并不会返回数据,回到MainActivity只是因为T2Activity被销毁了。而通过startActivityForResult有返回数据
2.1MainActivity.java
package com.example.lab8;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity { TextView showResultFormT2; Button startBtn; Button waitBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWidget(); addListener(); } //获得组件 protected void getWidget() { this.showResultFormT2 = (TextView)findViewById(R.id.text); this.startBtn = (Button)findViewById(R.id.start_btn); this.waitBtn = (Button)findViewById(R.id.wait_btn); } //为组件添加监听事件 protected void addListener() { startBtn.setOnClickListener(startT2); waitBtn.setOnClickListener(startT2ForReslut); } //startActivity启动() public Button.OnClickListener startT2 = new Button.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,T2Activity.class); MainActivity.this.startActivity(intent); } }; //startActivityForResult启动() public Button.OnClickListener startT2ForReslut = new Button.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,T2Activity.class); int requestCode = 110; //这里注意使用MainActivity.this.startActivityForResult()而不是直接startActivityForResult(),因为在这里this = view 下面也一样 MainActivity.this.startActivityForResult(intent, requestCode); } }; //接受返回的结果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (resultCode) { case RESULT_OK: String result = data.getStringExtra("mes"); showResultFormT2.setText(result); break; default: break; } }; @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; }}
2.2T2Activity.java
package com.example.lab8;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class T2Activity extends Activity { EditText edit; Button finish; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.t2activity_layout); edit = (EditText)findViewById(R.id.edit); finish = (Button)findViewById(R.id.finish); finish.setOnClickListener(finishT2); } public Button.OnClickListener finishT2 = new Button.OnClickListener() { @Override public void onClick(View v) { String result = edit.getText().toString(); if((result.trim()).equals("")) Toast.makeText(T2Activity.this, "请先输入" ,Toast.LENGTH_LONG).show(); else { Intent intent = new Intent(); intent.putExtra("mes", result); T2Activity.this.setResult(RESULT_OK,intent); T2Activity.this.finish(); } }; };} //几个Activity中内置的resultCode 自定义时不要冲突 /** Standard activity result: operation canceled. */ public static final int RESULT_CANCELED = 0; /** Standard activity result: operation succeeded. */ public static final int RESULT_OK = -1; /** Start of user-defined activity results. */ public static final int RESULT_FIRST_USER = 1;
0 0
- startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- startActivityForResult的使用
- Android startActivityForResult的使用
- startActivityForResult的简单使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- Android startActivityForResult的使用
- nyoj 1058 部分和问题
- windows中的进程和线程
- Compile、Make和Build的区别(转载)
- PyCharm设置护眼背景色
- IntelliJ IDEA 导入 第三方jar包 图解
- startActivityForResult的使用
- Activity跳转切换动画
- 算法导论(problems 6-3 Young tableaus)
- 策略模式+工厂模式优化if...else if...else if结构
- Spring 3之MVC & Security简单整合开发(一)
- C#中DataSet类的使用
- poj 3624 01背包
- IIS 访问网站 错误消息 401.3
- APP切换语言