2012-04-09 29 views
0

好吧,我会尝试描述这是我可以做到的最好方式。Android从数组列表中获取正确的值

我有一个聊天应用程序,我正在发送一个请求以接收公共频道列表。 我收到回来自服务器的字符串是:

RESP_PUBLICCHANNELLIST, channelID 1, channelName 1, channelID 2, channelName 2 

当我加入这个名单我的AlertDialog,它显示了每个通道和通道ID作为一个单独的通道。我想在AlertDialog中只显示频道名称,并在地图上显示频道ID并带有键值。这可能吗?

这里是我当前的代码,我有问题:

public void ShowPublicChannelList(){ 

    String PublicChannelsPost = ""; 
    PublicChannelsPost = ExecuteCommand(_chatProtocol.ShowPublicChannelList()); 
    System.out.println("Public Channels: " + PublicChannelsPost); 
    _publicChannels.add("New.."); 

    List <String> responseList = Arrays.asList(PublicChannelsPost.split(",")); 
     if (responseList.contains("RESP_PUBLICCHANNELLIST")){ 
      for (int i = 1; i < responseList.size(); i++) { 
       _publicChannels.add(responseList.get(i)); 
       System.out.println("Channels: " + _publicChannels); 
      } 
       SetPublicChannelList(_publicChannels); 
       } 

任何帮助将是非常美妙!

谢谢!

回答

1

如果我正确理解您的问题,您不确定如何将服务器响应解析为通道ID和名称的映射?你可以简单地通过步骤为2的分隔字符串列表,并将每个字符串填充到单个映射条目中。这确实假定一个频道ID后面总是跟着一个频道名称(反之亦然:每个名称前面都有一个ID)。你可以看到,如果源列表的长度是'意想不到的',我只是简单地打破循环。您可能需要考虑实施更强大的功能,除非您确定绝对不会出现违规情况。

+0

非常感谢! – DommyCastles 2012-04-09 05:01:33