‘壹’ android如何为自定义的类传递参数
由CourseActivity跳转到MainActivity?
通过intent.putExtras(xxx,yyy)来传递参数,在MainActivity里面通过getIntent().getExtras().get(xxx)来获取参数。你要给自定义类设置参数,只要在类里面添加一个属性,用来接收就好了。
‘贰’ android sqllite 中cursor遍历为什么只遍历最后一个
原因:
引用传递。所以咐手,第一次调衡闹嫌用queryList(Cursor cursor)方法,对cursor进行第一次遍历之后,外面的cursor的位置就变了,第弯游二次调用queryList(Cursor cursor)方法,遍历的起始位置是上次结束的位置。
解决:
在while (cursor.moveToNext()){}遍历之前加上cursor.moveToPosition(-1)让cursor的位置重新回到起始位置
‘叁’ android 利用bundle传递的对象是不是只能是静态的,求高手解答
Parcelable是复制了一个副本吵迅,而不是直接引用传递。悄绝
要想达到你的效果,可以在Parcelable的实现类extra里面弄一个引用demo,
然后把升运此extra传过去。
‘肆’ android里面activity如何把自己的引用传给service,使得service可以直接调用activity的方法
直接传activity 引用肯定是不行的,
最简单的是 用静态全局变量 ,不过不推荐。
所以只能复杂一点 ,不能service可以直接调用activity ,只能传消息给activity ,让activity 执行特定的方法。
就是 service start activity 。
而activity 设置为 single instance ,在newIntent 方法 里面 处理 传入消息。
还有一个方法就是activity 里面定义 一个 内部类 broadcast ,然后 service 调用sendbraoadcast ,
broadcast 再调用 activity 方法。
‘伍’ android是值传递还是引用传递
在不同的编程语言中可能会大同小异吧
在C#中,这些都是针对方法而言的。
值传递指的是方法被调用时传递进来的参数是一个副本(拷贝),而不是传递进来参数本身。换句话说对值传递参数的修改不会影响到调用方传递的参数对象;
而引用传递指的是方法被调用时传递进来的参数是一个引用,换句话说传递进来的参数是指向调用方传递的参数本身的。对引用传递的参数的修改会影响到调用方传递的参数对象。
‘陆’ 如何用interface传递数据 androidd
对于依赖于操作系统的程序,客户程序除了包含一个程序入口外,还需要和相关系统服务一起运行,以完成指定的任务。比如,Win32程序需要和GUI系统服务一起实现带有可视窗口的功能;X
程序员需要在不同的Activity之间传递数据,然而,这个问题本身就有问题。所谓“传递消息”一般是指多个线程之间,而Activity本身并不是线程,ActivityThread才是一个线程,即UI线程。同一个程序中的多个Activity都由ActivityThread进行调用,Activity本身只是一个Java类而已,就像Rect、Trigle类一样,如果有人问“Rect类和Trigle类之间如何传递消息”,你会不会觉得有点奇怪?
事实上,如果要在两个类中传递数据,方法可以有很多。
方法一:可以先实例化某个类,获得该类的引用,当其他类需要该对象的内部数据时,可以直接通过该引用去访问该类的内部数据。
方法二:对于A、B两个类之间,可以先实例化一个第三方类C,然后两个类都可以把需要传递的数据存入C中,或从C中取出。
这些方法理论上都可以用在Activity类之间传递数据。然而,与普通类传递数据有所不同,普通类的实例化都是程序员显式完成的,而Activity类的实例化却是由Framework完成的,程序员只能使用startActivity()方法来告诉Framework去运行哪个Activity,这就意味着程序员不能得到Acitivity对象的引用,那么就不能直接访问该对象的内部数据。解决的办法是使用Activity.getApplication()函数,该函数能够返回一个Application对象,该Application对象在该程序中是唯一的,同一程序中的不同Activity调用该函数所返回的Application对象是相同的,该对象的名称可以在AndroidManifest.xml中指定。一旦获取了该Application对象,就可以借助该对象,在不同的Activity之间传递数据。
除此之外,Framework本身也提供了标准的Activity之间传递数据的方法,即Intent类。该类作为startActivity()的参数,仅用于在启动Activity时传递给目标Activity,同时,如果调用startActivityForResult(),目标Activity在结束后,也会返回一个Intent对象给原Activity。
另外,从设计理念的角度来看,Android认为,两个Activity如果要共享数据,可以通过Preference Storage或者文件、数据库进行,同时,在一般情况下,设备上只会有一个Activity在运行,因此,多个Activity之间传递数据也不是必需的。
‘柒’ android里 activity怎么向service传递参数
android中activity中向service传递参数,有如下方法:x0dx0ax0dx0a1.在Activity里注册一个BroadcastReceiver,Service完成某个任务就可以发一个广播,接岩型收器收销山到广播后通知activity做相应的操作。x0dx0a2.使用bindService来关联Service和Application,应用.apk里的所有组件一般情况都运行在粗斗猜同一个进程中,所以不需要用到IPC,bindService成功后,Service的Client可以得到Service返回的一个iBinder引用,具体的参见Service的文档及onBind的例子,这样Service的引用就可以通过返回的iBinder对象得到,如x0dx0apublic class LocalService extends Service {x0dx0a // This is the object that receives interactions from clients. Seex0dx0a // RemoteService for a more complete example.x0dx0a private final IBinder mBinder = new LocalBinder();x0dx0ax0dx0a public class LocalBinder extends Binder {x0dx0a LocalService getService() {x0dx0a return LocalService.this;x0dx0a }x0dx0a }x0dx0ax0dx0a @Overridex0dx0a public IBinder onBind(Intent intent) {x0dx0a return mBinder;x0dx0a }x0dx0a}x0dx0ax0dx0a之后Client通过这个iBinder对象得到Service对象引用之后,可以直接和Service通讯,比如读取Service中的值或是调用Service的方法。