4. OnKeyUp. Obtenga un código de barras de un escáner con emulación de tecladoAplicació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í.
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 {
Y en el archivo
ui/gallery/GalleryFragment
, redefinimos dos funciones.
override fun onCreate(savedInstanceState: Bundle?) { setHasOptionsMenu(true)
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ú.