【问题标题】:(Android studio) How to get item position from strings.xml if I know the string?(Android 工作室)如果我知道字符串,如何从 strings.xml 获取项目位置?
【发布时间】:2017-06-19 13:13:58
【问题描述】:

我在 strings.xml 中有一个字符串列表

<resources>
<string name="app_name">XXXXXX MAPS</string>

<string-array name="Field">
    <item>
        AAAAA
    </item>
    <item>
        BBBBB
    </item>
    <item>
        CCCCC
    </item>
    <item>
        DDDDD
    </item>
    <item>
        EEEEE
    </item>
    <item>
        FFFFF
    </item>
    <item>
        GGGGG
    </item>

我已将此列表放入列表视图中。 当我单击列表视图时,我将获得字符串(例如 String clicked = EEEEE)

如何使用我知道已单击字符串的信息从该 strings.xml 中找到 int 位置? (例如,如果点击 String EEEEE 我想获得 Int stringclicked = 5)

我想强调一下,我想以某种方式使用 strings.xml 中的字符串列表来获取它。我不能使用类似的东西

public void onItemClick(AdapterView<?> parent, final View view, int position, long id)

获取 int 位置。

【问题讨论】:

  • @Selvin ???在哪里回答了这么多次???
  • @selvin 在哪里?请给个链接
  • 你不可能把它放在没有适配器的列表视图中。使用从适配器获得的位置。这会导致你想要的位置
  • 我知道了。这是一个愚蠢的问题。我只是感到困惑,因为我使用的是过滤列表视图的 searcview,但我无处可去。
  • 请不要在您的主题中添加诸如“已回答”之类的内容,而应接受最有帮助的答案

标签: java android xml string


【解决方案1】:

直接回答你的问题,如果你有一个字符串,想在资源中获取数组中的位置:

String[] stringArray = getResources().getStringArray(R.array.Field);

获取资源数组中的位置:

 Arrays.asList(stringArray).indexOf(string)

【讨论】:

    【解决方案2】:

    如果您有字符串列表,我可以在问题中看到什么。您可以使用列表的 indexOf 方法来获取位置。例如:

        List<String> strings = new ArrayList<>();
        strings.add("aaa");
        strings.add("bbb");
        strings.add("ccc");
        strings.add("ddd");
        strings.add("eee");
        int position = strings.indexOf("ccc");
    

    【讨论】:

      【解决方案3】:
      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
      
                  try {                                       
                      //'position' refers to the 'int position' in the Override method
                      Log.e("This is your position", position.toString());
      
                  } catch (Exception e) {
                      e.printStackTrace();                    
                  }
              }
          });
      

      【讨论】:

        猜你喜欢
        • 2011-11-30
        • 1970-01-01
        • 2014-02-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-02
        • 1970-01-01
        • 2011-11-14
        • 2012-09-20
        相关资源
        最近更新 更多