网友通过本文主要向大家介绍了android activity返回,android activity,android activity跳转,android baseactivity,android activity传值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
android:从另外一个activity中返回数据
首先看一下activity返回数据的结构图
以前我们启动另外一个activity用的是
startActivity(Intent intent)
方法 而若想打开另外一个activity并且返回结果 就要使用
startActivityForResult(Intent intent,int requestCode)intent就不用说了 其中requestCode就是请求码 为了在另外一个activity中分辨 每个请求码应该做的事情
具体作用是:
我们实现的效果是:
主界面是这样当我们点击选择按钮后打开另外一个activity
当我们点击号码时,结束这个activity并且在主activity中的编辑框中显示这个号码
具体实现代码如下。
MainActivity
package com.example.activityforresult; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText editText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=(EditText) findViewById(R.id.editText); button=(Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //从另外一个activity得到结果不能再用startActivity()方法要用这个方法 startActivityForResult(new Intent(MainActivity.this,ResultActivity.class), 0x1); } }); } /* * 如果要得到返回的结果 一定要实现这个类 * */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub //如果data等于null返回 if(data==null) return ; String phoneNumber=data.getExtras().getString("phoneNumber"); //更新编辑框内容为所选的号码 editText.setText(phoneNumber); } }
在ResultActivity中 需要用setResult(int resultCode, Intent data);方法返回选择的号码。其中resultCode是一个int型,而data是Intent型 。新建一个intent对象就好了
然后调用finish()方法结束这个activity 别忘记在AndroidManifest配置一下信息如下
所以ResultActivity代码如下
package com.example.activityforresult; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class ResultActivity extends Activity{ private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); textView=(TextView) findViewById(R.id.textView); textView.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.putExtra("phoneNumber", textView.getText().toString()); setResult(0x1, intent); finish(); } }); } }activity_main.xml
activity_result.xml
这是运行结果