03. Unos i prikaz podataka

Java ulazne i izlazle operacije uključuju korišćenje tokova. Tok je apstraktna reprezentacija (predstavljanje) ulaznog ili izlaznog uređaja koji je izvor ili odredište za podatke. U tok se mogu upisivati podaci i iz toka se mogu čitati podaci. Tok se može zamisliti kao niz bajtova koji teku u ili iz programa.

Kada upisujemo podatke u tok, tok se tada naziva izlazni tok. Izlazni tok se odnosi na bilo koji uređaj kome se može proslediti niz bajtova (datoteka - fajl na disku ili udaljenom računaru, štampač, monitor ...).

Podaci se čitaju iz ulaznog toka. Po pravilu to može biti bilo koji serijski izvor podataka ( datoteka, tastatura, udaljeni računar).

Glavni razlog za korišćenje tokova za osnovne ulazne i izlazne operacije jeste da se obezbedi nezavisnost programskog koda u odnosu na uređaj koji se koristi (time ne brinemo o karakteristikama svakog uređaja sa kojim radimo i time programi rade na mnoštvu ulazno-izlaznih uređaja bez ikakve izmene izvornog koda).

Ulazno-izlaznim operacijama tokova upravlja paket java.io.

U našem radu, do daljnjeg ćemo za izlaz na ekran (monitor) u konzolnom režimu koristiti funkcije System.out.print i System.out.println koje smo već koristili.

Primer. Izračunavanje obima pravougaonika:

import java.util.Scanner; //ovu liniju dodaje kompajler sam
public class ObimPravougaonika {
public static void main(String[] args) {
Scanner ulaz=new Scanner(System.in); //Klasa koju koristimo za ulaz
double a,Obim;
int b;
System.out.print("Unesi stranice pravougaonika.\na=");
a=ulaz.nextDouble(); //realni broj
System.out.print("b=");
b=ulaz.nextInt(); //celi broj
Obim=2*a+2*b;
System.out.print("Obim pravougaonika stranica a="+a+" i b="+b+" je "+Obim);
}
}

Unos i prikaz podataka  u Android-u

Pošto u Androidu nemamo konzolu, za vezbe osnovnih, uvodnih metoda programiranja koristićemo komponente:

  • tekstualne oznake (TextView) za poruke korisniku,
  • teksualna polja ( Text Fields (EditText)) za unos i prikaz podataka, i
  • dugme (Button) za pokretanje izračunavanja.

Komponente na formu postavljamo u okviru activity_.....xml, ili prevlačenjem u režimu dizajna ili ručnim upisom u režimu teksta.

 Za gorenavedeni primer izračunavanja obima pravougaonika,

A. stavićemo na formu:

  • tekstualne oznake sa natpisima (nebitni nazivi): stranica a, stranica b i obim,
  • tekstualna polja tipa (inputType): number : tbNa (tekst boks, broj, a), tbNb, tbNob, i
  • dugme dIzracunaj

B. napišemo metodu

But public void IzracunajObim(){
        String tekstPolja=((EditText) findViewById(R.id.tbNDa)).getText().toString();
        int a=Integer.parseInt(tekstPolja);
        tekstPolja=((EditText) findViewById(R.id.tbNDb)).getText().toString();
        int b=Integer.parseInt(tekstPolja);
        int obim=2*a+2*b;

        EditText tObim=(EditText) findViewById(R.id.tbNDob);
        tObim.setText(Integer.toString(obim));
    }

C. Povežemo metodu sa klikom na dugme (OnClick)

Ovo možemo da uradimo na dva načina:

C1. u activity_.....xml

u osobinama dugmeta u polje OnClick unesemo ime metode IzracunajObim. U tekstualnom režimu to izgleda ovako:

<Button
        android:text="Izracunaj"
       ...

       android:layout_below="@+id/tbNDob"
        android:onClick="IzracunajObim"/>

C2. u klasi onCreate dodajemo kod za osluškivanje i hvatanje događaja onClick:

Button dugmeIzr=(Button)findViewById(R.id.dIzracunaj);
        dugmeIzr.setOnClickListener(new View.OnClickListener(){
            @Override
                public void onClick(View view) {
                IzracunajObim();
            }
        });

 

 

Vežbe / Zadaci: