Aplicación en TSD y comunicación con 1C: Enterprise 8.3 a través del servicio HTTP. Parte 5 (Menú, objeto complementario)

4. OnKeyUp. Obtenga un código de barras de un escáner con emulación de teclado

Aplicación en TSD y comunicación con 1C: Enterprise 8.3 a través del servicio HTTP. Parte 5 (Menú, objeto complementario)


Cada aplicación tiene variables globales. Por ejemplo, uno de ellos es el nombre de la base de datos. No sé cuánto es esto correcto desde el punto de vista de kotlin-way. Para establecer variables globales para una aplicación, haremos lo siguiente. Cree un nuevo proyecto de Navigation Drawer Activity . En él aprenderemos a trabajar con el menú y a crear una página con la configuración. Junto a MainActivity, cree una nueva clase

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

En AndroidManifest.xml en la <application etiqueta de <application , agregue la línea 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> 


Eso es todo. Ahora, desde cualquier parte de la aplicación, podemos tomar nuestras variables al referirnos a ellas como MyApp.

Pasamos a la segunda parte. Juguemos con el menú. Decidamos de inmediato que tendremos nuestro propio menú para cada fragmento. Ahora en el proyecto se ve así.

res
imagen

Crea un nuevo menú. New - Menu resource file Coloque el siguiente texto en el archivo. orderInCategory indica la posición del menú. Menos es más alto. Recordamos BASIC y número 10, 20, 30: por lo que siempre tendremos la oportunidad de agregar otro elemento entre los elementos. -!>

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

Creemos que nuestra Actividad principal no tiene su propio menú. Por lo tanto, eliminamos audazmente la función

 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 } 

Y en el archivo ui/gallery/GalleryFragment , redefinimos dos funciones.

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

Y al final agregamos la función

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

Eso es todo. Por analogía para cada fragmento, ahora podemos agregar nuestro propio menú.

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


All Articles