【问题标题】:Android: get name of string resource used in string-arrayAndroid:获取字符串数组中使用的字符串资源的名称
【发布时间】:2017-02-22 15:20:37
【问题描述】:

我有一个小问题。

我的字符串.xml

<resources>
    <!-- Months -->
    <string name="january">January</string>
    <string name="february">February</string>
    <string name="march">March</string>
    <string name="april">April</string>
    <string name="may">May</string>
    <string name="june">June</string>
    <string name="july">July</string>
    <string name="august">August</string>
    <string name="september">September</string>
    <string name="october">October</string>
    <string name="november">November</string>
    <string name="december">December</string>
</resources>

还有我的months.xml

<resources>
    <string-array name="months">
        <item>@string/january</item>
        <item>@string/february</item>
        <item>@string/march</item>
        <item>@string/april</item>
        <item>@string/may</item>
        <item>@string/june</item>
        <item>@string/july</item>
        <item>@string/august</item>
        <item>@string/september</item>
        <item>@string/october</item>
        <item>@string/november</item>
        <item>@string/december</item>
    </string-array>
</resources>

我为我的微调器设置了months.xml。

<Spinner
    android:id="@+id/sn_months"
    android:layout_width="150dp"
    android:layout_height="50dp"
    android:textAlignment="center"
    android:entries="@array/months"/>

现在,我想使用项目的位置在微调器的 onItemSelected 中获取项目的字符串名称,例如 1 月、2 月、...而不是 1 月、2 月、...。我该怎么做?

【问题讨论】:

  • 如果我理解正确,您想要使用的资源名称,例如 january 来自 @string/january。不可能。对不起。
  • 感谢@EugenPechanec。我会找到另一种方式。

标签: android arrays xml


【解决方案1】:
public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
   String yearnam=parent.getItemAtPosition(pos).toString()toLowerCase();
}

【讨论】:

    【解决方案2】:

    您应该使用spinner.getSelectedItemPosition(),而不是依赖字符串值进行比较,因为它将返回所选项目的索引值。

    【讨论】:

      【解决方案3】:

      1) 随意更改输入。

      <resources>
      <!-- Months -->
      <string name="january">january</string>
      <string name="february">february</string>
      <string name="march">march</string>
      <string name="april">april</string>
      <string name="may">may</string>
      <string name="june">june</string>
      <string name="july">july</string>
      <string name="august">august</string>
      <string name="september">september</string>
      <string name="october">october</string>
      <string name="november">november</string>
      <string name="december">december</string>
      

      或者

      2) 通过扩展 Spinner 创建自定义 View 更改属性加载行为

      【讨论】:

        猜你喜欢
        • 2011-11-21
        • 1970-01-01
        • 2023-03-20
        • 2011-11-05
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 1970-01-01
        • 2018-03-23
        相关资源
        最近更新 更多