vlastny

Vlastný slovník

Aplikácia  vám umožní napísať si vlasní slovník s vašich prídaných slov a potom sa otestovať v hádaní týchto slov. Je to skvelý spôsob ako sa naučiť nové slová. Na výber máte z 5 jazykov a to Anglický , Nemecký , Francúzsky , Španielsky a Polský. Slov môžete pridávať koľko len chcete a pre lepší prehlad vyhladávať pomocou vyhladávača.

Screenshot_2015-10-27-18-43-25

Táto aplikácia bola pre mna len taký test aby som sa naučil robiť s mySQL databázou pre android zariadenia. Keďže som sa ale len nechcel učiť z tutoriálov ale naučiť sa na vlastnom projekte s mySQL databázou , njlepší nápad pre aplikáciu sa mi zdalo spraviť slovník. Zároveň ma napadlo že ešte som nevidel aplikáciu ktorá by umožňovala napísať si slovník a z neho by ma aplikácia „skúšala“. Ak teda nejakú poznáte určíte napíšte v komentári. Neviem ako vy ale ja som sa nové slovíčka vždy učil tak že som si  rukou zakryl slovenské/cudzie slová a tie som potom hádal. To už je dnes minulosťou :D stačí iba napísať slovíčko a kliknúť na jedno tlačítko. To vás dostane do obrazovky v ktorej uvidíte náhodné slovíčko ktoré musíte napísať v správnom tvare. Môžete si prepnúť či vám buded písať v slovenskom alaebo cudzom jazyku. Po zadaní slova sa vam zobrazí obrázok správnosti/nesprávnosti vašeho slova a upozorní vás na to zvukom. Zároveň si môžete pozrieť koľko slov z koľkých ste uhádli správne.

Screenshot_2015-10-27-18-43-51

Ako som už písal slová sa vám ukladajú a načítavajú z mySQL databáze a z nej si načítava ListView príslušné slová v String hodnote.

List<Slova> list = databaza.toString();
final ArrayAdapter<Slova> adapter = new InteractiveArrayAdapter(this,
list);
zoznam = (ListView) findViewById(R.id.listView);
zoznam.setAdapter(adapter);

Takže vždy keď chcete spraviť vlastný listView (zoznam) ktorý nevyzerá iba ako defaultný list s jedným String paramentrom musíte si vytvoriť vlastný adapter. Na ten potrebujete List v ktorom sa nachádza dá sa povedať že všetok obsah teda ako v mojom prípade Stringových hodnôt. v databaza.databazaToString mi vlastne while cyklom načítavalo.

public List<Slova> toString() {

String dbString = "";
List<Model> list = new ArrayList<Model>();
db = getWritableDatabase();
String query = "SELECT * FROM " + DATABAZA_TABUKLA + " WHERE 1";
Cursor c = db.rawQuery(query, null);
c.moveToLast();
do {
            try {
                if (c.getString(c.getColumnIndex("prvyJazyk")) != null) {
                    String prveSlovo = c.getString(c.getColumnIndex("prvyJazyk"));
if (c.getString(c.getColumnIndex("druhyJazyk")) != null) {
                        String druheSlovo = c.getString(c.getColumnIndex("druhyJazyk"));
dbString = prveSlovo + "&&" + druheSlovo;
list.add(get(dbString));
}
                }
                c.moveToPrevious();
}
            catch (Exception error){
                break;
}
        } while (!c.isBeforeFirst());
db.close();
return list;
}

Tu takže vidíte že do jednej hodnoty v liste sa mi napísal jeden dlhý String ktorý sa skladal s dvoch slov a bol oddelený písmenami : &&. Práve tento dlhý String sa potom spracuje v InteractiveArrayAdapter ktorý ich znova oddelí.

ViewHolder viewHolder = new ViewHolder();
viewHolder.anglicky = (TextView) rowView.findViewById(R.id.prve);
viewHolder.slovensky = (TextView) rowView.findViewById(R.id.druhe);
ViewHolder holder = (ViewHolder) rowView.getTag();
String vsetko = list.get(position).getMeno();
String[] slova = vsetko.split("&&");
holder.anglicky.setText(slova[0]);
holder.slovensky.setText(slova[1]);
return rowView;

Tu sa spracuje po jednom každý riadok ListViewu. Počet riadkov určuje práve velkosť Listu. Takže načítaný jeden riadok s listu je uložený v hodnote všetko. Potom si vytvorím malé pole ktoré rozdelí slovo na 2 slová ktoré sú oddelené práve tým &&. Predstavte si teda že užívatel zadá Anglicky hi a slovensky ahoj. Databáza to uloží do listu iba ako hi&&ahoj. Potom sa už teda iba nadstavia do 2 TextViewov z ktorých sa skladá ListView. A metóda nám vráti na konci rowView teda grafický jeden riadok. Keďže už máme vytvorený adaptér stačí nam len načítať ho z xml súboru a nadstaviť ho na náš vytvorený adaptér.

Aplikácia v dobe písania ešte nie je dokončená no do pár dní bude a zadám sem aj link k stiahnutiu.

Screenshot_2015-10-27-18-43-25Screenshot_2015-10-27-18-43-37 Screenshot_2015-10-27-18-43-51 Screenshot_2015-10-27-18-45-00