android传递activity
❶ 如何在Android开发中activity之间数据传递
方法/步骤
创建Intent对象,并配置参数,有那个activity跳转到哪个activity
在intent对象中进行存放数据,数据的格式是key-value形式
启动跳转
进入下一个到跳转的activity中,并取得intent对象
通过intent对象取得bundle对象,数据就在bundle对象中,然后通过key-value形式取得数据
❷ 如何在Android开发中activity之间数据传递
android各组件之间可以使用Intent来传递数据, 这里以ActivityA向ActivityB传递数据为例
java">Intentintent=newIntent(context,ActivityB.class);
//如果context上下文不是Activity的话,需要添加下面这个flag,
if(!(contextinstanceofActivity)){
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//添加要传递的数据
//这里的key到时候ActivityB会用来得到value
//android要求可以传递的数据类型包括基本数据类型,
//基本数据类型的数组,CharSequence,以及实现了Parcelable的对象
//putExtra是重载方法,根据value的类型会适当的打包进intent的Bundle对象里
intent.putExtra(key,value);
//或则将数据打包进Bundledata里,然后intent.putExtras(data);
context.startActivity(intent);
在ActivityB中
publicvoidonCreate(BundlesavedInstanceState){
//得到传递过来的数据
Bundlebundle=getIntent().getExtras();
//通过getXXX方法来获取key对应的value
bundle.getXXX(key);
}
❸ 如何在Android开发中activity之间数据传递
android各组件之间可以使用Intent来传递数据, 这里以ActivityA向ActivityB传递数据为例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Intent intent = new Intent(context, ActivityB.class);
//如果context上下文不是Activity的话, 需要添加下面这个flag,
if (!(context instanceof Activity)) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//添加要传递的数据
//这里的key到时候ActivityB会用来得到value
//android要求可以传递的数据类型包括基本数据类型,
//基本数据类型的数组,CharSequence,以及实现了Parcelable的对象
//putExtra是重载方法, 根据value的类型会适当的打包进intent的Bundle对象里
intent.putExtra(key, value);
//或则将数据打包进Bundle data里, 然后intent.putExtras(data);
context.startActivity(intent);
在ActivityB中
1
2
3
4
5
6
public void onCreate(Bundle savedInstanceState) {
//得到传递过来的数据
Bundle bundle = getIntent().getExtras();
//通过getXXX方法来获取key对应的value
bundle.getXXX(key);
}
❹ android-Android广播怎么传递数据给Activity
一种是像楼主所说的,在Activity里注册一个BroadcastReceiver,Service完成某个任务就可以发一个广播,接收器收到广播后通知activity做相应的操作。 另一种是,使用bindService来关联Service和Application,应用.apk里的所有组件一般情况都运行在同一个进程中,所以不需要用到IPC,bindService成功后,Service的Client可以得到Service返回的一个iBinder引用,具体的参见Service的文档及onBind的例子,这样Service的引用就可以通过返回的iBinder对象得到,如 public class LocalService extends Service { // This is the object that receives interactions from clients. See // RemoteService for a more complete example. private final IBinder mBinder = new LocalBinder(); public class LocalBinder extends Binder { LocalService getService() { return LocalService.this; } } @Override public IBinder onBind(Intent intent) { return mBinder; } } 之后Client通过这个iBinder对象得到Service对象引用之后,可以直接和Service通讯,比如读取Service中的值或是调用Service的方法。
❺ 如何在Android开发中activity之间数据传递
用intent在activity之间传递数据,需要注意三个方法:
1.startActivityForResult(Intent intent, int requestCode)
2.setResult(int resultCode, Intent data)
3.onActivityResult(int requestCode, int resultCode, Intent data)
需要注意的是:
1.函数1在Activity_A里面调用,然后启动Activity_B(由intent参数决定启动哪个activity);然后Activity_B执行完了之后,在finish()函数里面调用函数2;此时返回Activity_A;最后在Activity_A里面系统自动调用已经重载的函数3,Activity_A可以从该函数的第三个参数data里面获得想要的数据。
2.函数1有两个参数,第二个参数确定请求码;
3.函数3有三个参数:第一个参数请求码,与函数1的第二个参数意义相同,用于确定是否是从Activity_B里获得的返回值;第二个参数是结果码,用于确定返回的结果是否可用;第三个参数是intent变量,用于传递数据。
❻ android两个activity之间传值
Activity之间是没有办法直接传递数据的。Android的设计原则是,用Intent在不同的Activity和进程之间进行通信,但是通常来讲,Intent中只能存入基本数据类型和系统默认支持的比如Uri之类的。那么对于用户自己定义的数据结构是无法直接用Intent来传送的,如果想要通过Intent来传递自定义数据,可以让数据结构实现Parcelable接口,这样就可以把数据放入Intent。但是Intent的传送效率也不是很高,特别是当传递一些如Bitmap的大数据,用Intent传递超过500K的Bitmap,就会造成Framework层的Java Binder挂掉,结果就是传递不成功。
这点可以算成是Android的一个弊端,没有很好的解决方案。能做到的就是尽量设计的时候注意,尽量让Activity之间共享基本数据类型。
Android本身的应用中也深受其害,可以看到有很多应用程序的源代码中的主要的类在三千行以上的不在少数,比如Browser中的BrowserActivity有四千多行;Mms中的ComposeMessageActivity也有四千多行,等等。为什么一个类会如此之大,就是因为它们是程序的主页面,是业务的核心逻辑所在,里面也控制着很多的其他的数据结构,而又无法与另外的Activity共享,所以就只能在一个Activity里面做所的事情。
❼ android 类怎么传参数给activity
1、新建一个java类,右击src目录,选择new-->class,新的activity需要继承Activity类
2、需要复写onCreate()
例子:
package com.example.testsend;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity2 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newtest);
}
}
❽ Android开发中怎么把广播中处理后的信息传递给Activity
1.发送广播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中创建一个内部类MyBroadcastReceiver扩展BroadcastReceiver,并在其中实现onReceive方法。
3.在Activity中声明一个MyBroadcastReceiver类型的成员变量,并注册:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完后要记得释放
unregisterReceiver(receiver);
注:1和2中的 BroadcastAction要是同一个Action