Skip to content

Instantly share code, notes, and snippets.

View cengiztoru's full-sized avatar
💻

Cengiz TORU cengiztoru

💻
View GitHub Profile
@cengiztoru
cengiztoru / LoginFragment.kt
Last active July 1, 2020 20:51
Navigation Architectural Component - Pass Primitive Data Without SafeArgs
//PASS DATA WITHOUT SAFE ARGS, PASS DATA BY SIMPLE BUNDLE
val bundle = Bundle()
bundle.putString("email", etMail.text.toString())
bundle.putInt("userID", 123)
bundle.putBoolean("isActive",false)
// ...
navController.navigate(R.id.action_loginFragment_to_homeFragment, bundle)
@cengiztoru
cengiztoru / navigation_graph.xml
Created July 1, 2020 20:46
Navigation Architectural Components Define Arguments
<fragment
android:id="@+id/homeFragment"
android:name="com.cengiztoru.samplenavigationexample.ui.fragments.HomeFragment"
android:label="fragment_home"
tools:layout="@layout/fragment_home">
<argument
android:name="email"
app:argType="string"
android:defaultValue="none" />
@cengiztoru
cengiztoru / HomeFragment.kt
Last active July 1, 2020 20:59
Navigatiıon Architectural Components - Getting Passed Data
lateinit var email: String
lateinit var userID: Int
lateinit var isActive: Boolean
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
email = arguments!!.getString("email")!!
userID = arguments!!.getInt("userId")!!
isActive = arguments!!.getBoolean("isActive")!!
@cengiztoru
cengiztoru / User.kt
Created July 1, 2020 21:02
Navigation Architecture Components Pass Object Model
@Parcelize
data class User(val email: String, val name: String, val surname: String) : Parcelable
@cengiztoru
cengiztoru / navigation_graph.xml
Created July 1, 2020 21:06
Navigation Architecture Components Pass Object - Define Argument
<fragment
android:id="@+id/homeFragment"
android:name="com.cengiztoru.samplenavigationexample.ui.fragments.HomeFragment"
android:label="fragment_home"
tools:layout="@layout/fragment_home">
<argument
android:name="user"
app:argType="com.cengiztoru.samplenavigationexample.data.User"
app:nullable="false" />
@cengiztoru
cengiztoru / LoginFragment.kt
Last active July 2, 2020 22:27
Navigation Architecture Components - Pass Object without SafeArgs
val bundle = Bundle()
bundle.putParcelable("user", getUserData())
navController.navigate(R.id.action_loginFragment_to_homeFragment, bundle)
// ************************************************************************************
//TODO YOU CAN CUSTOMIZE HERE FOR YOU
private fun getUserData() = User(etMail.text.toString(), "Cengiz", "TORU")
@cengiztoru
cengiztoru / HomeFragment.kt
Last active July 1, 2020 21:18
Navigation Architectural Component - Getting Passed Object
lateinit var user: User
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
user = arguments!!.getParcelable<User>("user")!!
}
@cengiztoru
cengiztoru / LoginFragment.kt
Last active July 2, 2020 22:27
Navigation Architectural Component Pass Data With SafeArgs
val user = getUserData()
val action = LoginFragmentDirections.actionLoginFragmentToHomeFragment(user)
navController.navigate(action)
// ************************************************************************************
//TODO YOU CAN CUSTOMIZE HERE FOR YOU
private fun getUserData() = User(etMail.text.toString(), "Cengiz", "TORU")
@cengiztoru
cengiztoru / HomeFragment.kt
Created July 1, 2020 22:31
Navigation Architectural Components - Getting Passed Data
lateinit var user: User
val args: HomeFragmentArgs by navArgs()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
user = args.user
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@cengiztoru
cengiztoru / ExampleFragment.kt
Created July 8, 2021 17:05
TabLayout with ViewPager2
TabLayoutMediator(mTabLayout, mViewPager) { tab, position ->
tab.text = it[position].title
}.attach()