To grant and revoke permissions via Terminal (ADB Shell), run your app on an emulator (I haven’t personally tried on a device but it should work there too). Open your Terminal, and then enter the following command: adb shell Once you’re in, you may use the following syntax for granting or revoking your Android device’s […]
Android
A working shared ViewModel between parent and child Fragments //Android Kotlin Dev Diary
I initially had a problem with the shared ViewModel because the child fragments were creating a new instance from the one held by the parent fragment. The ViewModel instantiations below work for me: CreateLogFragment.kt (parent)
|
1 2 3 4 |
class CreateLogFragment : Fragment() { private val mainViewModel: MainViewModel by activityViewModels { MainViewModel.Factory } . . . |
CreateLogFoodFragment.kt (child)
|
1 2 3 4 5 |
class CreateLogFoodFragment : Fragment() { private val mainViewModel: MainViewModel by activityViewModels( null, factoryProducer = { MainViewModel.Factory }) . . . |
CreateLogNotesFragment.kt (another child)
|
1 2 3 4 5 |
class CreateLogFoodFragment : Fragment() { private val mainViewModel: MainViewModel by activityViewModels( null, factoryProducer = { MainViewModel.Factory }) . . . |
by activityViewModels turned things around!
My Fave Android Studio Keyboard Shortcuts
I have been working on small Android apps, and I just want to share some of my favorite keyboard shortcuts. Some of them were manually added by me. Keyboard shortcuts are one of my must-haves for productivity as a programmer, as they let me navigate through code faster, allowing me to focus on creating new […]
val vs. const //Kotlin Android Dev Diary
Let’s start off by introducing val. To define a variable in Kotlin, you may use var or val: var val has a mutable value (changeable) has an immutable value (read-only) So we use val for immutable values, so what is the const keyword and what’s its difference from val? const val has an immutable value […]
Error: Type mismatch. Required: ActivityMainBinding. Found: ViewDataBinding! //Android Kotlin Dev Diary
The problem is that this line of code is producing an error: And the error says: Type mismatch.Required:ActivityMainBindingFound:ViewDataBinding! The solution is to add a <layout> tag in the layout file that you are inflating!
Error inflating class androidx.fragment.app.FragmentContainerView // Android Kotlin Dev Diary
The cause of error in Logcat: The fix was to add a startDestination to <navigation> tag in the nav_graph.xml.
Expand ScrollView vertically if height is smaller than screen // Android Dev Diary
I have the following XML layout code in an Android app that I’ve been tinkering with: I wrapped my GridLayout in a ScrollView because on the landscape orientation of the Android app’s screen, my grid contents are cut from the view because they’re too tall, and there’s no way to see them without a scrollbar, […]
DataBinderMapperImpl Error: cannot find symbol (DataBinding) //Android Kotlin Dev Diary
Today I encountered the following error as I was building an Android app: Turns out, there’s an error in the related XML file, activity_main.xml! 😂 For other possible solutions, this StackOverflower answer may help: android: data binding error: cannot find symbol class
Cannot access ‘‘: it is private in ‘MoshiConverterFactory’ //Android Kotlin Dev Diary
I’m starting a new category on my blog — Dev Diary, to document some of the errors that I encounter and what I did to fix them. I’m doing this in hopes of helping developers (including my future self!) as they work with code (and to get more blog visits! LOL). It’s nice to save […]
Android app dev: Intent extras set in onBackPressed() misssing when back to onActivityResult()
It’s funny how we spent about an hour trying to figure out why the Intent extras that we’re setting are not being sent back to onActivityResult(). If we only knew that the solution was as simple as moving one line of code. The call to super.onBackPressed() should be placed after setting Intent extras and after […]