如何从android中的numberpicker获取索引值

时间:2014-08-24 13:43:07

标签: android numberpicker

NumberPicker np;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);             

            np = (NumberPicker)findViewById(R.id.np1);

            String[] values = {"one","two","three", "four","five","six","seven","eight"};       
            np.setMaxValue(values.length-1);
            np.setMinValue(0);
            np.setDisplayedValues(values);       
            np.setWrapSelectorWheel(false);
}

上面是我的代码片段。所以我试图获取所选数字选择器的索引值。我怎么写呢?我已经有类似的东西:

int pushupReps = Integer.parseInt(push_ups.getText().toString());

但它似乎没有工作,我在OnCreate()方法中有这个:

push_ups = (EditText)findViewById(R.id.pushups);

这是我使用的主要xml:      

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <CheckBox
            android:id="@+id/checkBox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I&apos;m a Commando/Diver/Guards" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/age"
            android:layout_width="96dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center|right"
            android:text="Age: "
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <NumberPicker
            android:id="@+id/np1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:inputType= "none" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView3"
            android:layout_width="96dp"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:text="Push-ups: "
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/pushups"
            android:layout_width="190dp"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="number" >

            <requestFocus />
        </EditText>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView4"
            android:layout_width="96dp"
            android:layout_height="wrap_content"
            android:text="Sit-ups: "
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/situps"
            android:layout_width="190dp"
            android:layout_height="wrap_content"
            android:inputType="number" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/pushup_score"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="2.4km Run: "
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/run_minutes"
            android:layout_width="72dp"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="number" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:text="mins" />

        <EditText
            android:id="@+id/run_secs"
            android:layout_width="72dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="number" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:text="secs" />

    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="143dp" >

        <Button
            android:id="@+id/calculate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="35dp"
            android:text="Calculate" />

    </RelativeLayout>

</LinearLayout>

<TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:text="All Rights Reserved. Lee Guanhua 2014."
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textSize="8sp" />

2 个答案:

答案 0 :(得分:5)

int pos = np.getValue() 

应该获得索引。

values[pos] 

获取价值

答案 1 :(得分:1)

int index = np.getValue();
String selectedString = values[index]; // you will have the desired String from values array in selectedString