2013-04-13 13 views
6

I "m próbuje dodać onValueChangeListener aby mój numer próbnika (NP1) w android 4.2.2.wykonawcze OnValueChange do NumberPicker w Androidzie

Oto co mam tak daleko

public class main extends Activity { 
ViewFlipper vf = null; 
HttpClient client = null; 
private ArrayList<String> captionList = new ArrayList<String>(); 
ListView lv = null; 
private String custid = null; 
ImageView iv = null; 
private int vfloginview = 0; 
private int vflistview = 0; 
private boolean vfsentinal = false; 
NumberPicker np1 = null; 
TextView totalcost = null; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mystuffmobile); 
    vf = (ViewFlipper) findViewById(R.id.vf); 
    client = new DefaultHttpClient(); 
    lv = (ListView) findViewById(R.id.lv); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    np1 = (NumberPicker) findViewById(R.id.np1); 
    np1.setMinValue(1); 
    np1.setMaxValue(400); 
    //np1.setOnValueChangedListener;  
    //np1.setOnValueChangedListener(onValueChange); 

} 

spróbować przetestować to funkcjonalność Używam tego

public void onValueChange (NumberPicker np1, int oldVal, int newVal) { 
    Log.v("NumberPicker", np1.getValue() +""); 
} 

Czy ktoś wie, w łatwy sposób wdrożyć ten słuchacza czy moja główna działalność polega na implementacji NumberPicker.OnValueChangeListener?

Uwaga: jedynym powodem, dla którego nie zgadzam się na wdrożenie mojej głównej aktywności NumberPicker.OnValueChangeListener, jest to, że muszę ustawić główne na abstrakcyjne, a moja aplikacja nie będzie działać.

Odpowiedz

11

Będziesz robić to tak jak słuchacz kliknięć na przycisku.

np1.setOnValueChangedListener(new OnValueChangeListener() { 
    @Override 
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
     // do something here 
    } 
}); 

w pełni funkcjonalny przykład można znaleźć tutaj: http://samplecodez.com/android/numberpicker.php

Niektóre punkty stylistyczne ...

  • główne powinny być kapitalizowane i jest to dobra praktyka, aby uczynić go bardziej opisowe jak główną działalność.
  • Używaj pól tylko wtedy, gdy jest to konieczne. Zgaduję, że nie używasz większości tych zmiennych poza onCreate(), więc zamiast nich ustaw zmienne lokalne.
  • TextView totalCost jest twoją najlepiej nazwaną zmienną partii :) Zastanów się nad użyciem pełnych nazw. Będziesz Ci dziękować przez 6 miesięcy, gdy spojrzysz wstecz na ten kod po raz pierwszy od dłuższego czasu.
  • Brak wartości magicznych (lub ciągów znaków)! Stwórz stałą dla wartości minimalnej i maksymalnej, a te powinny być prywatną statyczną ostateczną int z twoimi polami.
  • W konfiguracji Eclipse zapisywanie java w preferencjach, aby automatycznie formatować wszystkie wiersze kodu podczas zapisywania.

Oczywiście żadna z tych rzeczy nie sprawi, że twój kod będzie działał lepiej, ale na pewno będzie łatwiejszy do odczytania.

+0

Bill Mote jesteś geniuszem. Dziękuję za Twój czas!!! Właśnie skończyłeś godzinę rozwiązywania problemów !! – TheMcMurder

+1

Wszyscy byliśmy tam. Zaufajcie mi;) Kiedy patrzę wstecz na niektóre z moich wczesnych pytań, bardzo się boję, że wciąż są tam do publicznej konsumpcji! –

+0

Hahahahaha dzięki jeszcze raz. Doceniam również wskaźniki do stylizacji. Minęło dużo czasu odkąd wziąłem klasę kodowania i zapomniałem wiele takich rzeczy. Zaimplementowałem kilka wskaźników. – TheMcMurder

Powiązane problemy