Wie muss ich der Context verwenden?

  • Antworten:2
  • Bentwortet
Robbiani Renato
  • Forum-Beiträge: 609

02.08.2021, 21:49:10 via Website

Hallo zusammen

Ich möchte die Funktionalität in einer Klasse zusammen fassen. Dabei möchte ich das Telefon mit einer bestimmten Nummer öffnen. Ich habe ein Beispiel gefunden in welchen der Context nicht verwendet wird.

Baue ich das ganze in meine Klasse wird nach dem Context gefragt.

package ch.robbisoft.klassennotfall

import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.core.content.ContentProviderCompat.requireContext
import androidx.core.content.ContextCompat.startActivity
import kotlin.coroutines.coroutineContext

class Telefon constructor( var context: Context){

fun rufen( nummer : String) : Boolean{
    val intent = Intent(Intent.ACTION_DIAL, Uri.parse(nummer))
    startActivity(context,  intent, null)
    return true
}

}

Der Aufruf der Klasse mache ich wie folgt:

val telefon = Telefon(requireContext())
        telefon.rufen(text)

Beim Aufruf von startActivity stürzt die App aber ab mit der Meldung unbekante Ressource.

Was muss ich ändern damit es funktioniert?

Gruss Renato

Kommentieren
Beste Antwort
Jokel
  • Forum-Beiträge: 1.530

03.08.2021, 05:50:02 via Website

StartActivity hat nur den den einen Übergabe wert der Activity.
Du bist nicht in der activity.
Zum Aufruf brauchst Du den Context richtig aber vor der Methode.

context.startActivity(intent)

val telefon = Telefon(requireContext())
telefon.rufen(text)

auch hier den Context der Activity benutzen
und ist "text" auch ein String?

— geändert am 03.08.2021, 09:35:26

Hilfreich?
Robbiani Renato
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 609

04.08.2021, 20:33:00 via Website

Genau so geht es. Danke Jokel.

Hilfreich?
Kommentieren