Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Java Android Studio - Volani funkce z jine tridy s promenou. Error

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Petr Vít
Člen
Avatar
Petr Vít:14.12.2016 12:24

Zdravim,
chystal jsem se naprogramovat moji prvni aplikaci na adnroid. Ma to byt takovy maly konverter.

Na titulni strane si clovek vybere ze dvou konverzi, po jeho volbe se otevre nova layout ( zavola se aktivita)
Tam vyplni castku a klikne na Button. Tady chci aby se otevrela treti layout ( aktivita ) coz by nebyl problem akorat chci zde pracovat prave s promenou kterou uzivate zadal jako castku na druhem layoutu.

A tady nastava situace ze pri kompilaci mi to vyhodi error class.. expected

Tohle je napsani na druhem layoutu, vola se treti layout a mam tam funkci cislicko ktera by mela vracet promneou:

public void ptrida(){
    Intent bravo = new Intent(this, PosledniTrida.class);
    startActivity(bravo);
}
public static int cislicko (int bara){
    return bara;
}

A tohle je na poslednim layoutu ( PosledniTrida)

Treti cislo = new Treti();
       Button tlacitkotreti = (Button) findViewById(R.id.button23);
       int c = cislo.cislicko(int bara);

Adnroid Studio 2.2 - Error, java class expected ..
Mate nekdo tucha kde je chyba ?

Diky

 
Odpovědět
14.12.2016 12:24
Avatar
Odpovídá na Petr Vít
Petr Štechmüller:14.12.2016 13:45

Ahoj, můžeš sem hodit celý kód druhé a třetí aktivity? Nikde nevidím, že by jsi předával proměnnou z druhého layoutu do třetího.

Editováno 14.12.2016 13:45
Nahoru Odpovědět
14.12.2016 13:45
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Petr Vít
Člen
Avatar
Petr Vít:14.12.2016 13:51

Ve druhe jsem prave jen vytvoril funkci (int bara) je to cislo ktere chci.. A ze treti jse ji chtel zavolat

viz Druha

package com.example.anew.coverter5;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.content.Intent;

public class Treti extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_treti);





        final Button tlacitko1 = (Button) findViewById(R.id.vyitc);
        tlacitko1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText rupie = (EditText) findViewById(R.id.hodnota1);
                String pocet = rupie.getText().toString();
                int a = Integer.parseInt(pocet);
                int bara = a + 1;
                ptrida(bara);

            }
        });

    }
    public void ptrida(){
        Intent bravo = new Intent(this, PosledniTrida.class);
        startActivity(bravo);
    }
    public static int cislicko (int bara){
        return bara;
    }


}

A tady je treti

package com.example.anew.coverter5;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;


public class PosledniTrida extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_posledni_trida);

        Treti cislo = new Treti();
        Button tlacitkotreti = (Button) findViewById(R.id.button23);
        int c = cislo.cislicko(int bara);

    }
}

Mimochodem,..Druha trida se jmenuje treti. Jen aby to nematlo :)

 
Nahoru Odpovědět
14.12.2016 13:51
Avatar
Odpovídá na Petr Vít
Petr Štechmüller:14.12.2016 14:07

Jenže takhle to nefunguje. Nemůžeš si jen tak volat konstruktor aktivit.
Ten parametr musíš předat nové aktivitě v intentu. Potom v metodě onCreate získáš intent pomocí getIntent(), a z toho si vytáhneš ten parametr.

ps. příště používej tlačítko odpovědět, aby se mi ukázala notifikace...

Nahoru Odpovědět
14.12.2016 14:07
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Petr Vít
Petr Štechmüller:14.12.2016 14:09

Zkus se podívat sem. Na konci toho článku je ukázáno, jak se vloží parametry do intentu.
A tady je, jak se ty parametry vytáhnou v nové aktivitě

Editováno 14.12.2016 14:10
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
14.12.2016 14:09
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Petr Vít
Člen
Avatar
Odpovídá na Petr Štechmüller
Petr Vít:14.12.2016 16:38

Super, presne co jsem potreboval.
Jen me zmatl ze ta funkce putExtra (string,in)
Chce string jako nazev promene a pak jeji samotnou hodnotu. Porad jsem tam cpal jen hodnotu.

Ted uz je to dobre a vse maka jak ma. :)
Diky

 
Nahoru Odpovědět
14.12.2016 16:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.