2014-08-23 2 views
0

У меня проблема с android NumberPicker. Я уверен, что это из-за вызова onValueChange (выбор номера, int oldVal, int newVal). У меня нет старогоVal или newVal в настоящее время в коде ... мой вопрос заключается в том, как сохранить значение из NumberPicker без использования объекта TextView xml. В настоящее время я не могу прокрутить назад до более низких чисел в NumberPicker, я предполагаю, что это потому, что метод onValueChange ... я не хочу отображать текущий или предыдущий номер, выбранный на экране, поэтому id хотел бы избежать настройки TextView в XML-, но я не уверен, как сохранить текущее значение сборщика номер ...сохранение значения с помощью NumberPicker android

Java файл:

package com.example.android.test; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.NumberPicker; 
import android.widget.NumberPicker.OnValueChangeListener; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

static final int MIN_VAL = 0; 
static final int MAX_VAL = 255; 
NumberPicker red, green, blue; 
View v; 

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

    red = (NumberPicker) findViewById(R.id.redPicker); 
    green = (NumberPicker) findViewById(R.id.greenPicker); 
    blue = (NumberPicker) findViewById(R.id.bluePicker); 

    red.setMinValue(MIN_VAL); 
    red.setMaxValue(MAX_VAL); 
    red.setWrapSelectorWheel(false); 

    green.setMinValue(MIN_VAL); 
    green.setMaxValue(MAX_VAL); 
    green.setWrapSelectorWheel(false); 

    blue.setMinValue(MIN_VAL); 
    blue.setMaxValue(MAX_VAL); 
    blue.setWrapSelectorWheel(false); 

    v = findViewById(R.id.color_box); 
    v.setBackgroundColor(0x0000FF00); 

    red.setOnValueChangedListener(new OnValueChangeListener() { 

     @Override 
     public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
      // TODO Auto-generated method stub 

      v.setBackgroundColor(0xFF11F000); 
     } 
    }); 
} 

} 

XML файл:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="bottom"> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="187dp"> 

    <NumberPicker 
     android:id="@+id/redPicker" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 

    <NumberPicker 
     android:id="@+id/greenPicker" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 

    <NumberPicker 
     android:id="@+id/bluePicker" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 

</LinearLayout> 

<View 
    android:id="@+id/color_box" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    /> 

</LinearLayout> 
+0

Что вы подразумеваете под «i can not scroll back to lower numbers» – eldjon

+0

Я могу прокручивать вверх по набору чисел, но когда я пытаюсь выбрать меньшее число, он замерзает на секунду, а затем выбирает большее число. – StillLearningToCode

+0

что вы делаете on ** onValueChanged() **. можете ли вы опубликовать этот метод? – eldjon

ответ

0

Это не было мой код, это была проблема с тем, что виртуальное устройство было sloooooow ... я начал с телефона, и это wo как ожидалось.

Смежные вопросы