查找所选android spinner项的数组索引值

时间:2015-01-30 15:22:53

标签: android android-spinner

在注册期间,用户可以从android Spinner中选择titleName。我从xml类加载数据到Spinner。我想传递titleName和标题ID,

如何获取所选titleName&#39的数组索引的值? 例如 - 如果用户选择了Mr,那么我想传递值0。

我的java代码

states = getResources().getStringArray(R.array.title_array);

            titleSP = (Spinner) findViewById(R.id.registerTitle);

            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, states);
            dataAdapter
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            titleSP.setAdapter(dataAdapter);
final Button button = (Button) findViewById(R.id.btnRegister);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                try {

                    String TitleName = titleSP.getSelectedItem().toString();

我的title.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_prompt">Choose the title</string>
    <string-array name="title_array">
        <item>Mr</item>
        <item>Mrs</item>
        <item>Miss</item>
        <item>Dr</item>
        <item>Rev</item>
        <item>Ms</item>
    </string-array>
</resources>

2 个答案:

答案 0 :(得分:0)

适配器中的position参数。您可以检索它实现OnItemClickListeneronItemClick的第三个参数 是你正在寻找的价值

答案 1 :(得分:0)

使用Spinners OnItemClickListener

spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String[] titles = getResources().getStringArray(R.id.title_array);
                String selectedTitle = titles[position];
            }
        });

位置变量给出了微调器中项目的位置,您可以直接匹配数据源中标题的位置。

编辑: 您可以使用微调器的内置方法来获取当前选定的项目位置。因此,如果您选择第一个项目,您将获得选定项目位置0.因为这是基于您的数据源,所选项目位置0将与R.id.title_array中的索引位置0相同,这将是“Mr”

titleSP.getSelectedItemPosition();