Hallo zusammen,
trotz Stunden Suche in Developer.anroid.com finde ich nicht den richtigen Ansatz für eine vermutlich ganz einfache Fragestellung.
Ich habe eine neues Proekt erstellt auf Basis der "Bottom-Navigation"-Voralage.
Zur Navigation habe ich ein weiteres Fragment "notification_details" erstellt und vom Fragement "navigation_notifications" eine action als Verbidnung zu meinem neuen Fragement
<fragment
android:id="@+id/navigation_notifications"
android:name="de.meinProjekt.ui.notifications.NotificationsFragment"
android:label="@string/title_notifications"
tools:layout="@layout/fragment_notifications" >
<action
android:id="@+id/action_navigation_notifications_to_notification_details"
app:destination="@id/notification_details" />
</fragment>
Im Notifications-Fragment habe ich einen Button und dort auch ein onClick angegeben
<Button
android:id="@+id/btnShowDetails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WLAN-Einstellungen"
tools:layout_editor_absoluteX="36dp"
tools:layout_editor_absoluteY="132dp"
android:onClick="btnShowDetails"/>
Bei Klick auf den Button soll das notification_details Fragment angezeigt werden. Ich habe aber offensichtlich das Prinzip dahinter noch nicht verstanden (entwickle eigentlich seit vielen Jahren in Delphi, für eine App aber leider nicht wirklich nutzbar).
Ich finde aber nicht die richtige Stelle, an der ich das onClick "einbauen" muss.Nach meinem bisherigen Verständnis wäre das in notificationsFragment.kt.
package de.meinProjekt.ui.notifications
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import de.meinProjekt.databinding.FragmentNotificationsBinding
class NotificationsFragment : Fragment() {
private var _binding: FragmentNotificationsBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val notificationsViewModel =
ViewModelProvider(this).get(NotificationsViewModel::class.java)
_binding = FragmentNotificationsBinding.inflate(inflater, container, false)
val root: View = binding.root
val textView: TextView = binding.textNotifications
notificationsViewModel.text.observe(viewLifecycleOwner) {
textView.text = it
}
// hier müsste irgendwie eine Referenz auf den Button erstellt werden, damit diese im OnClick wieder verwendet werden kann ??
return root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
// eigene Methoden
// hier müsste irgendwie die OnClick-Behandlung des Buttons hin ??
}
Alles anzeigen
Kann mit jemand einen Tipp geben oder einen Verweis auf eine Tutorial, wie man diese vermeintlich eifache Anforderung umsetzen kann?
Aus Delphi bin ich es gewohnt, dass ich z.B. bei einem Button per GUI in der Entwicklungsumgebung meine OnClick-Routine als Rumpf angelegt bekomme und nur noch den Inhalt programmieren muss. Viellecht geht das ja in Android-Studio auch und ich habe es nur noch nicht gefunden ?
Vielen Dank schon mal für alle Tipps!