2017-09-26 53 views
-2

我目前正在使用Android网络服务发现。使用下面的函数,它每次运行时都会返回一个主机名。但是,我想将所有数据存储在某处传递给下一个活动,我将如何能够实现这一目标?Android存储多个数据

public void onServiceFound(NsdServiceInfo service) { 

      Log.d(TAG, "Service discovery success" + service.getServiceName()); 
      if (!service.getServiceType().equals(SERVICE_TYPE)) { 
       Log.d(TAG, "Unknown Service Type: " + service.getServiceType()); 
      } else if (service.getServiceName().equals(mServiceName)) { 
       Log.d(TAG, "Same machine: " + mServiceName); 
      } else if (service.getServiceName().contains(mServiceName)){ 
       mNsdManager.resolveService(service, mResolveListener); 
      } 
     } 

示例我有3个名称来存储,我将如何能够做到这一点?

+0

如果您不需要它们持续存在,那么只需在启动新活动之前将其作为额外添加项添加到意图中即可。如果你想让他们坚持下去,那么使用sharedpreferences。 –

+0

如果该函数对多个名称(例如,50个名称)运行多次,我如何一次意图指定所有名称? –

+0

由于您正在使用互联网,我想,那么您也可以将您的信息存储在Firebase中,或者您的应用程序可以创建一个文件,其中包含所有信息。存储。另一种选择是您也可以使用共享首选项。 –

回答

0

每次获取名称时,只需将其添加到列表中即可。 myListOfNames。

在产卵新活动之前,将该列表添加到您的意图中作为额外。

你可以做这样的事情

Intent i = new Intent() 
i.putExtra("my_names", TextUtils.join(",", myListOfNames)); 
startActivity(i); 

其中TextUtils.join会崩溃你的名单分成一个逗号分隔的字符串。