PHP týden Letní akce
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!
Avatar
Jan Balák
Člen
Avatar
Jan Balák:3. března 15:41

Ahoj,
dělám appku, která tahá JSON z webu, zpracovává jej a zobrazuje v listview.
Jelikož začínám, řídil jsem se především tímto tutoriálem:
https://camposha.info/…rlconnection
Potřebuji, aby se po kliknutí na položku listview zobrazila nová aktivita, do které předám detailní data z položky.
Dle následujícího článku jsem tedy zvolil intent:
https://www.itnetwork.cz/…ences-intent
V JSONParser.kt jsem tedy nahradil řádek:
convertView.se­tOnClickListe­ner { Toast.makeTex­t(c,user.getNa­me(),Toast.LEN­GTH_SHORT).show() }
za:
convertView.se­tOnClickListe­ner {
val intent = Intent(this, DetailActivity::clas­s.java)
intent.putExtra("pro­menna1", "hodnota1")
startActivity(in­tent)
}

Jenže mi to hází tyto chyby a nedaří se je odstranit. Už v tom ležím víkend, projito hafo článků a nic:

  • None of the following functions can be called with the arguments supplied: public constructor Intent(p0: Context!, p1: Class<*>!) defined in android.conten­t.Intent public constructor Intent(p0: String!, p1: Uri!) defined in android.conten­t.Intent
  • Unresolved reference: startActivity

Minimálně bych se přimlouval za článek na tomto serveru řešící tuto problematiku (JSON a zpracování) atd. :-)
Díky.

 
Odpovědět 3. března 15:41
Avatar
Odpovídá na Jan Balák
Matúš Olejník:3. března 20:14

Ahoj dlhšie som s Androidom nerobil, ale zbežne po pozretí, keďže tá vnorená trieda MrAdapter v JSONParser neextenduje Activity tak nemôžeš do konštruktora dávať "this" pretože on očakáva to čo ti píše v tej chybe. Rovnako startActivity je tiež metóda zdedená z Activity, preto ju nemôžeš len tak hocikde volať.

Context ti však prichádza ako parameter z konštruktora (neviem ako presne sa to nazýva v Kotline) a to private var c: Context, takže by mohlo stačiť zmeniť tvoj kód na

convertView.setOnClickListener {
    val intent = Intent(c, DetailActivity::class.java)
    intent.putExtra("promenna1", "hodnota1")
    c.startActivity(intent)
}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 3. března 20:14
/* I am not sure why this works but it fixes the problem */
Avatar
Jan Balák
Člen
Avatar
Jan Balák:4. března 14:49

Super, vše funguje. Díky za vysvětlení.
Jdu se s tím mořit dál :-).

 
Nahoru Odpovědět  +1 4. března 14:49
Avatar
Odpovídá na Jan Balák
Matúš Olejník:4. března 17:59

Nz, ale mohol si to aspoň označiť ako riešenie tvojho problému :D

Nahoru Odpovědět 4. března 17:59
/* I am not sure why this works but it fixes the problem */
Avatar
Jan Balák
Člen
Avatar
Odpovídá na Matúš Olejník
Jan Balák:4. března 18:03

Máš to tam. Ještě jsem si na to nezvykl :-).

 
Nahoru Odpovědět  +1 4. března 18:03
Avatar
Odpovídá na Jan Balák
Matúš Olejník:4. března 18:06

Pohoda díky :D

Nahoru Odpovědět 4. března 18:06
/* I am not sure why this works but it fixes the problem */
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.