Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。
Intent是Android一个很重要的类。Intent直译是“意图”,比如你想从这个Activity跳转到另外一个Activity,这就是一个意图。
activity跳转可以选择无返回结果,也可以有。如下两个demo
无返回结果:
package com.ly;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
public class BundleTestActivity extends Activity {
EditText et1 ;
EditText et2 ;
Button bt;
RadioButton rb;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1=(EditText) findViewById(R.id.et1);
et2=(EditText) findViewById(R.id.et2);
rb=(RadioButton) findViewById(R.id.radioButton1);
bt=(Button) findViewById(R.id.btn);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String username =et1.getText().toString();
String password=et2.getText().toString();
String sex =rb.isChecked()?"男":"女";
User u =new User(username,password,sex);
Bundle b =new Bundle();
b.putSerializable("user", u);
Intent i =new Intent();
i.setClass(BundleTestActivity.this, Show.class);
i.putExtras(b);
startActivity(i);
}
});
}
}
activity
package com.ly;
import java.io.Serializable;
public class User implements Serializable {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public User(String username, String password, String sex) {
super();
this.username = username;
this.password = password;
this.sex = sex;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
private String password;
private String sex;
}
传递的实体(实现序列化)
package com.ly;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Show extends Activity {
private TextView tw;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
tw =(TextView) findViewById(R.id.tw);
Intent i =getIntent();
Bundle b =i.getExtras();
User u = (User) b.getSerializable("user");
tw.setText(u.getUsername()+u.getSex());
}
}
获得数据
(布局配置省略)
返回结果的跳转:
需要重写onActivityResult方法
package com.ly;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class ActivitycallbackdataActivity extends Activity {
private Button btn;
private EditText et;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.btn);
et = (EditText) findViewById(R.id.et);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ActivitycallbackdataActivity.this,
Result.class);
startActivityForResult(intent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0 && resultCode == 0) {
Bundle datas = data.getExtras();
String city = datas.getString("city");
et.setText(city);
}
}
}
跳转到的类
package com.ly;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Result extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = getIntent();
Bundle b =new Bundle();
b.putString("city", "广州");
i.putExtras(b);
this.setResult(0, i);
this.finish();
}
}
** 注意,在setResult后,要调用finish()销毁当前的Activity,否则无法返回到原来的Activity,就无法执行原来Activity的onActivityResult函数,看到当前的Activity没反应。
附:demo1布局
- 大小: 21.9 KB
分享到:
相关推荐
在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。...本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的V
在Android的开发过程中,有时需要进行Activity之间的跳转,在页面跳转的过程中,有时需要传递指定的参数数据过去,例如:信息发布app返回查询条件的需要,为此,就需要了解这方面的技术与实现方式。
用Intent进行跳转并传值给下一个Activity.
SmartGo:通过编译时注解生成文件,简化 Activity 跳转时传值及取值
Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。 Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个...
详细的介绍可以参考我的博客
Android学习之点击按钮跳转至另一个Activity并传值和设置返回逻辑父屏幕
1.使用 Intent 和 Bundle 实现页面之间的参数传递和跳转; 2.ListView 的使用以及 ListView 中 Item 的点击事件处理 3.button点击事件
能将第一个activity的值传到第二个activity,第二个activity的值能返回到第一个activity,适合初学者那来学习
使用StartActivityForResult进行Activity跳转传值的小例子
该程序实现了activity之间的跳转以及传值!
自己项目中用到fragment搭建框架,从网上找得一个demo,实现activity与fragment相互传值;fragment与fragment跳转。跟大家分享
Intent跳转传值,和Activity返回传值
android界面跳转与传值 android中Activity的跳转和值通过SharedPreferences传递。
这种你需要把接口声明成静态的,每个界面之后一个activity,只有一个this,跳转之后就销毁了。所以接口传值多用于Activity和Fragment之间,或者Fragment和Adapter之间。 mainActivityTwo.setCeshi(new ...
学习安卓最基本的要求:学会activity直接的跳转,并能够传值,可直接导入eclipse。努力学习吧
首页跳转到Activity B,在Activity B中改变首页的Fragment!解决 singleTask 的Intent传值问题