4. OnKeyUp. Obtenez un code-barres à partir d'un scanner avec émulation de clavierApplication 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.
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 {
Et dans le fichier
ui/gallery/GalleryFragment
,
ui/gallery/GalleryFragment
redéfinissons deux fonctions.
override fun onCreate(savedInstanceState: Bundle?) { setHasOptionsMenu(true)
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.