Aplicativo no TSD e comunicação com 1C: Enterprise 8.3 através do serviço HTTP. Parte 5 (Menu, objeto complementar)

4. OnKeyUp. Obtenha um código de barras em um scanner com emulação de teclado

Aplicativo no TSD e comunicação com 1C: Enterprise 8.3 através do serviço HTTP. Parte 5 (Menu, objeto complementar)


Cada aplicativo possui variáveis ​​globais. Por exemplo, um deles é o nome do banco de dados. Não sei o quanto isso está correto do ponto de vista do kotlin-way. Para definir variáveis ​​globais para um aplicativo, faremos o seguinte. Crie um novo projeto Navigation Drawer Activity . Nele vamos aprender a trabalhar com o menu e criar uma página com as configurações. Ao lado de MainActivity, crie uma nova 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" } } 

No AndroidManifest.xml na tag <application , adicione a linha 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> 


Só isso. Agora, de qualquer parte do aplicativo, podemos pegar nossas variáveis ​​referindo-se a elas como MyApp.

Passamos para a segunda parte. Vamos brincar com o menu. Vamos decidir imediatamente que teremos nosso próprio menu para cada fragmento. Agora, no projeto, fica assim.

res
imagem

Crie um novo menu. New - Menu resource file Coloque o seguinte texto no arquivo. orderInCategory indica a posição do menu. Menos é maior. Recordamos o BASIC e o número 10, 20, 30 - Portanto, sempre teremos a oportunidade de adicionar outro item entre os 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> 

Acreditamos que nossa Atividade principal não possui menu próprio. Portanto, excluímos com ousadia a função

 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 } 

E no arquivo ui/gallery/GalleryFragment , redefinimos duas funções.

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

E no final, adicionamos a função

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

Só isso. Por analogia para cada fragmento, agora podemos adicionar nosso próprio menu.

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


All Articles