代码之家  ›  专栏  ›  技术社区  ›  Sam Dutton

如何获取自旋体值?

  •  228
  • Sam Dutton  · 技术社区  · 16 年前

    在android中,我尝试用一个监听器获取选定的spinner值。

    获得旋转器价值的最佳方法是什么?

    6 回复  |  直到 7 年前
        1
  •  518
  •   Unmitigated    7 年前
    Spinner mySpinner = (Spinner) findViewById(R.id.your_spinner);
    String text = mySpinner.getSelectedItem().toString();
    
        2
  •  119
  •   Erich Douglass    16 年前

    选择某个选项时,微调器应触发“OnItemSelected”事件:

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            Object item = parent.getItemAtPosition(pos);
        }
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
    
        3
  •  42
  •   lenooh    11 年前

    假设这是带有微调器项(即标题)和值的XML:

    <resources>
        <string-array name="size_entries">
            <item>Small</item>
            <item>Medium</item>
            <item>Large</item>
        </string-array>
    
        <string-array name="size_values">
            <item>12</item>
            <item>16</item>
            <item>20</item>
        </string-array>
    </resources>
    

    这是你的旋转器:

    <Spinner
        android:id="@+id/size_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/size_entries" />
    

    然后在代码中获取条目:

    Spinner spinner = (Spinner) findViewById(R.id.size_spinner);
    String size = spinner.getSelectedItem().toString(); // Small, Medium, Large
    

    为了得到这些值:

    int spinner_pos = spinner.getSelectedItemPosition();
    String[] size_values = getResources().getStringArray(R.array.size_values);
    int size = Integer.valueOf(size_values[spinner_pos]); // 12, 16, 20
    
        4
  •  12
  •   CommonsWare    16 年前

    是的,您可以通过 setOnItemSelectedListener() ,如图所示 here .

        5
  •  11
  •   Eric Leschinski Mr. Napik    11 年前
    View view =(View) getActivity().findViewById(controlId);
    Spinner spinner = (Spinner)view.findViewById(R.id.spinner1);
    String valToSet = spinner.getSelectedItem().toString();
    
        6
  •  10
  •   Matt Logan    12 年前

    如果你已经知道物品是 String 我更喜欢:

    String itemText = (String) mySpinner.getSelectedItem();
    

    打电话 toString() 关于一个 Object 你知道的是 似乎是一条更迂回的道路,而不仅仅是 对象 .