Anwendung auf TSD und Kommunikation mit 1C: Enterprise 8.3 über HTTP-Service. Teil 5 (Menü, Begleitobjekt)

4. OnKeyUp. Holen Sie sich einen Barcode von einem Scanner mit Tastaturemulation

Anwendung auf TSD und Kommunikation mit 1C: Enterprise 8.3 über HTTP-Service. Teil 5 (Menü, Begleitobjekt)


Jede Anwendung verfügt über globale Variablen. Einer davon ist beispielsweise der Name der Datenbank. Ich weiß nicht, wie sehr dies aus der Sicht von Kotlin-Way richtig ist. Um globale Variablen für eine Anwendung festzulegen, gehen Sie wie folgt vor. Erstellen Sie eine neue Projektnavigations- Navigation Drawer Activity . Darin lernen wir, mit dem Menü zu arbeiten und eine Seite mit den Einstellungen zu erstellen. Erstellen Sie neben MainActivity eine neue Klasse

 class MyApp: Application() { companion object { var baseUrl = "http://192.168.0.1/unf/hs/inntsd/v1/" const val dbName = "mws_db" var user1C = "tsd" var pass1C = "123123" } } 

AndroidManifest.xml in AndroidManifest.xml im <application Tag die Zeile android:name=".MyApp"

AndroidManifest.xml
 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.domain.myapp"> <application android:name=".MyApp" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 


Das ist alles. Jetzt können wir von jedem Teil der Anwendung aus unsere Variablen übernehmen, indem wir sie als MyApp.

Wir gehen zum zweiten Teil über. Lass uns mit dem Menü spielen. Lassen Sie uns sofort entscheiden, dass wir für jedes Fragment ein eigenes Menü haben. Jetzt sieht es im Projekt so aus.

res
Bild

Erstellen Sie ein neues Menü. New - Menu resource file den folgenden Text in die Datei ein. orderInCategory gibt die Position des Menüs an. Weniger ist höher. Wir erinnern uns an BASIC und Nummer 10, 20, 30 - So haben wir immer die Möglichkeit, ein weiteres Element zwischen den Elementen hinzuzufügen. -!>

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/gallery_clear" android:orderInCategory="10" android:title="" app:showAsAction="never" /> <item android:id="@+id/gallery_send" android:orderInCategory="20" android:title="" app:showAsAction="never" /> </menu> 

Wir glauben, dass unsere Hauptaktivität kein eigenes Menü hat. Deshalb löschen wir die Funktion kühn

 override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.main, menu) return true } 

In der Datei ui/gallery/GalleryFragment definieren ui/gallery/GalleryFragment zwei Funktionen neu.

 override fun onCreate(savedInstanceState: Bundle?) { setHasOptionsMenu(true) //,      . super.onCreate(savedInstanceState) } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.menu_gallery, menu) //  . super.onCreateOptionsMenu(menu, inflater) } 

Und am Ende fügen wir die Funktion hinzu

 override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.getItemId()) { R.id.gallery_clear -> Log.d("MenuDebug", " ") R.id.gallery_send -> Log.d("MenuDebug", " ") } return super.onOptionsItemSelected(item) } 

Das ist alles. Analog zu jedem Fragment können wir nun unser eigenes Menü hinzufügen.

Source: https://habr.com/ru/post/de474596/


All Articles