Application sur TSD et communication avec 1C: Enterprise 8.3 via HTTP-Service. Partie 5 (Menu, objet compagnon)

4. OnKeyUp. Obtenez un code-barres à partir d'un scanner avec émulation de clavier

Application sur TSD et communication avec 1C: Enterprise 8.3 via HTTP-Service. Partie 5 (Menu, objet compagnon)


Chaque application a des variables globales. Par exemple, l'un d'eux est le nom de la base de données. Je ne sais pas dans quelle mesure cela est correct du point de vue de kotlin-way. Afin de définir des variables globales pour une application, nous ferons ce qui suit. Créez un nouveau projet d' Navigation Drawer Activity . Nous y apprendrons à travailler avec le menu et à créer une page avec les paramètres. À côté de MainActivity, créez une nouvelle classe

 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" } } 

Dans AndroidManifest.xml dans la <application , ajoutez la ligne 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> 


C’est tout. Maintenant, à partir de n'importe quelle partie de l'application, nous pouvons prendre nos variables en les MyApp.

Nous passons à la deuxième partie. Jouons avec le menu. Décidons immédiatement que nous aurons notre propre menu pour chaque fragment. Maintenant, dans le projet, cela ressemble à ceci.

res
image

Créez un nouveau menu. New - Menu resource file Placez le texte suivant dans le fichier. orderInCategory indique la position du menu. Moins, c'est plus. Nous rappelons BASIC et numéro 10, 20, 30 - Nous aurons donc toujours la possibilité d'ajouter un autre élément entre les éléments. -!>

 <?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> 

Nous pensons que notre Activité principale n'a pas son propre menu. Par conséquent, nous supprimons hardiment la fonction

 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 } 

Et dans le fichier ui/gallery/GalleryFragment , ui/gallery/GalleryFragment redéfinissons deux fonctions.

 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) } 

Et à la fin, nous ajoutons la fonction

 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) } 

C’est tout. Par analogie pour chaque fragment, nous pouvons maintenant ajouter notre propre menu.

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


All Articles