2017-09-26 52 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會崩潰你的名單分成一個逗號分隔的字符串。