在strings.xml中设置来自Array的微调器的值

时间:2011-12-14 18:08:15

标签: android

我有一个微调器,它使用strings.xml中的数组

如果数组有5个字符串(1,2,3,4,5),我希望微调器显示第二个 string(2)作为默认值,这可能吗? 我知道我可以重新排列字符串顺序,以便第一个是2, 但是如果微调器对话框显示为(2,1,3,4,5),这看起来不太好。

或者是否必须以编程方式在我的活动中创建数组 然后使用setPostion()? 我试过这个,但在活动中创建数组时出错了。 任何人都可以给我一个如何创建阵列和使用的例子 它在spinner()

我也在这里寻找答案,但似乎无法找到我需要的东西。

感谢您寻找......

2 个答案:

答案 0 :(得分:12)

我建议您查看:http://developer.android.com/resources/tutorials/views/hello-spinner.html

您应该在Activity中创建一个ArrayAdapter。

从以上链接:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.planets_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
}

您可以使用

spinner.setSelection(adapter.getPosition(value)));

设置位置。

答案 1 :(得分:3)

欢呼回复.....

没有做我需要的,但已设法解决我的问题如下..

首先,我在我的活动中创建了一个数组,而不是strings.xml。

    String[] NoCore_Array = new String [5];
{ 
    NoCore_Array[0] = "1";
    NoCore_Array[1] = "2";
    NoCore_Array[2] = "3";
    NoCore_Array[3] = "4";
    NoCore_Array[4] = "5";

}

然后我用...创建了微调器

    Spinner spnNoCore = (Spinner) findViewById(R.id.spinner_nocore);

然后使用上面的数组创建了适配器....

    ArrayAdapter NoCoreAdapter =  new ArrayAdapter(this, 
    android.R.layout.simple_spinner_item,  NoCore_Array);
    spnNoCore.setAdapter(NoCoreAdapter);

然后按如下方式设置适配器的默认位置......

    //Set Default Selection
    spnNoCore.setSelection(1);

然后其余的spinner代码用于操作...

     spnNoCore.setOnItemSelectedListener(new OnItemSelectedListener(){

        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {

            //Get item from spinner and store in string conductorSize........
            NoCore = parent.getItemAtPosition(pos).toString();

            if (NoCore.equals(NoCore1))   { CoreNo = 1    ;  }
            if (NoCore.equals(NoCore2))   { CoreNo = 2    ;  }
            if (NoCore.equals(NoCore3))   { CoreNo = 3    ;  }
            if (NoCore.equals(NoCore4))   { CoreNo = 4    ;  }
            if (NoCore.equals(NoCore5))   { CoreNo = 5    ;  }

     }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    });

希望这可以帮助其他有同样问题的人 在Spinner上设置默认选择。

然而,当这样做时,对话框的布局不太好, 单选按钮丢失,看起来像文本选择 用划分划分的线条。