Meracie komponenty:Keypad

Z Kiwiki
Verzia z 23:24, 1. január 2013, ktorú vytvoril Juraj (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání
Jazyk EN SK Navigácia Android projekty -> Meracie komponenty -> Meracie komponenty:Keypad -> MeasureDemo

Opis

Keypad - softvérová numerická klávesnica. Pomocou tejto klávesnice je možnosť zadávať presnú hodnotu inému komponentu. Komponent Keypad môže pracovať v 2 režimoch: ako štandardný widget podobný ostatným komponentom a ako dialógové okno, ktoré sa zobrazí na vyžiadanie.

Prednastavené hodnoty komponentu

  • value = 0
  • minimum = 0
  • maximum = 100
  • warning, alert - nie sú použité
  • Pri zadaní hodnoty mimo povolený rozsah, komponent vypíše upozornenie.

Špeciálne nastavenie komponentu Keypad a KeypadDialog

  • Pri tvorbe vizuálneho návrhu treba nastaviť rozmery komponentu Keypad tak, aby bol pomer výšky a šírky minimálne 1.2
  • Komponent KeypadDialog sa zobrazí, ak sa podrží dlhšie prst na určitom mieste komponentu. Aktívne oblasti komponentov:
    • Slider : obdĺžniková oblasť so zobrazením hodnoty posuvníka

Keypad

Objekt Keypad je potomkom triedy LinearLayout, preto jeho použitie je rovnaké ako použitie LinerLayout. Komponent Keypad nemôže obsahovať ďalší objekt View ako svojho potomka v XML návrhu. Pre zadávanie hodnoty inému komponentu sa využíva metóda spätného volania OnValueChanged, ktorá sa spustí, ak sa zmení hodnota komponentu Keypad.

Použitie komponentu Keypad:

xml (activity_meter.xml)

...
    <eu.sensys.measurelib.Keypad
        android:id="@+id/keypad"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        />
    
    <eu.sensys.measurelib.Slider
        android:id="@+id/meter"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        />    
...

java

        MeraciKomponent mk = (MeraciKomponent) findViewById(R.id.meter);
       	Keypad kep =  (Keypad) findViewById(R.id.keypad);
       	kep.setMax(max);
       	kep.setMin(min);
       	kep.setColorTheme(ComponentStyle.ANDROID);
        kep.valueChanged = new ComponentCallback(){
			@Override
			public void OnValueChanged(double value) {
				mk.setValue(value);
			}        	
       };

KeypadDialog

Objekt KeypadDialog je potomkom triedy Dialog. Konštruktor triedy KeypadDialog má tvar:

    public KeypadDialog(Context context, MeraciKomponent mk)

V konštruktore triedy KepadDialog sa musí určiť ktorému komponentu (potomkovi triedy MeraciKomponent) patrí dialóg.

Použitie komponentu Keypad:

V príklade je jeden komponent Slider, ktorému sa pridá možnosť zadávania hodnoty pomocou komponentu Keypad.

xml (activity_meter.xml)

...
    <eu.sensys.measurelib.Slider
        android:id="@+id/meter"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        />    
...

java

        MeraciKomponent mk = (MeraciKomponent) findViewById(R.id.meter);
        KeypadDialog kp = new KeypadDialog(this, mk);

Náhľady

Ukážky komponentu Keypad

Ukážky dialógu KeypadDialog