永发信息网

如何用interface传递数据 androidd

答案:2  悬赏:30  手机版
解决时间 2021-03-26 20:25
  • 提问者网友:末路
  • 2021-03-26 14:00
如何用interface传递数据 androidd
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-03-26 15:12
参照了下MarkerDamoActivity,写了两个布局文件custom_info_window
和custom_info_contents,然后构造了render()函数,也复写了Infowindowadapter接口,titile和snippet也有内容,可是点击marker还是没反应,是不是忘记了什么关键的步骤啊,实在是麻烦你了,多谢!下面是部分关键代码:

mWindow = getLayoutInflater().inflate(R.layout.custom_info_window
null);
mContents =
getLayoutInflater().inflate(R.layout.custom_info_contentsnull);

aMap.setInfoWindowAdapter(this);

aMap.setOnMarkerClickListener(this);

@Override
public View
getInfoContents(Marker arg0) {
// TODO Auto-generated method
stub
render(arg0 mContents);
return
mContents;

}

@Override

public View getInfoWindow(Marker arg0) {
// TODO
Auto-generated method stub
render(arg0 mWindow);

return mWindow;

}

@Override
public boolean onMarkerClick(Marker arg0) {

// TODO Auto-generated method stub
return false;

}
全部回答
  • 1楼网友:动情书生
  • 2021-03-26 16:02
对于依赖于操作系统的程序,客户程序除了包含一个程序入口外,还需要和相关系统服务一起运行,以完成指定的任务。比如,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之间传递数据也不是必需的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯