使用String ArrayAdapter从字符串数组源填充Spinner

Jui*_*iCe 3 xml android spinner

我通过在我的Java代码中填充微调器来创建我的应用程序.我现在正尝试将其转换为从strings.xml文件填充我的Spinners.我已经关注了几个网站(示例1示例2),但无法使我的代码工作.

这些问题的主要问题在于它们使用的ArrayAdapter类型<CharSequence>.我可以使用<String>ArrayAdapters 以某种方式执行此操作吗?

这是我的XML文件中的数组:

<string-array name="anti_pump_ap_mode_array">
    <item>OFF</item>
    <item>Anti-Pump</item>
    <item>Motor Cut...</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的代码:

apModeAdapter = new ArrayAdapter<String>(this, R.array.anti_pump_ap_mode_array, android.R.layout.simple_spinner_item );

apModeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, R.array.anti_pump_ap_mode_array );

apModeAdapter = ArrayAdapter.createFromResource(this, android.R.layout.simple_spinner_item, R.array.anti_pump_ap_mode_array );
Run Code Online (Sandbox Code Playgroud)

当然最后一个给了我一个错误,但前两个只是不填充我的微调器.当我运行应用程序时,Spinner只是空的.

nan*_*esh 18

使用以下方式,交换数组ID和布局ID.Textarray资源id是第二个参数

apModeAdapter = ArrayAdapter.createFromResource(this, R.array.anti_pump_ap_mode_array, android.R.layout.simple_spinner_item,  );
Run Code Online (Sandbox Code Playgroud)

编辑:第一种工作方式.从资源中获取字符串数组

Resources res = getResources();
apModeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, res.getStringArray(R.array.anti_pump_ap_mode_array) );
Run Code Online (Sandbox Code Playgroud)