Skip to content

Instantly share code, notes, and snippets.

View nisaefendioglu's full-sized avatar
:octocat:

Nisa Efendioğlu nisaefendioglu

:octocat:
View GitHub Profile
import android.content.Context;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class OnSwipeTouchListener implements OnTouchListener {
private final GestureDetector gestureDetector;
package com.example.cameraapp;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;

Kotlin Mülakat Hazırlık

1- var ile val nedir, ne amaçla kullanılır?

  • val, değiştirilemeyen yani immutable değişkenler için kullanılır.
  • var, değiştirilebilir yani mutable değişkenler için kullanılır.

2- open keyword ne işe yarar?

Kotlin dilinde her şey final’dır, yani değiştirilemez. Bu yüzden kullanılmak istenen sınıfların ve fonksiyonların önüne open keyword yazılmalıdır.

Android Lifecycle

android-dersleri-16 1-activity-lifecycle-yaşam-döngüsü-1

onCreate —> İlk çalışan metod

onStart —> Activity sayfasının kullanıcı tarafından görünür hale gelmesini sağlayan metod.

onResume —> Kullanıcının activityler ile karşılıklı etkileşimi. (Veri girilebilir durum.)

Fragment Lifecycle

https://www.mobilhanem.com/wp-content/uploads/2020/01/lifecycle.png

  1. onAttach(): Bu metod ilk olarak, Fragment’ınız Activity’e içerisinden ilk çağırıldığında çalışır. onCreate () öğesinden bile önce çağırılarak Fragment’ınızın bir Activity’e eklendiğini bildirir.
  2. onCreateView(): Fragment için en önemli metod’dur. Fragment’ın kullanıcı arayüzünü ilk kez çizmek için bu metod çalışır. Layout inflate etmek için bu metodu kullanmanız tavsiye edilir.
  3. onViewCreated(): Bu metod, onCreateView () öğesinden sonra çağrılır.
  4. onActivityCreated(): Bu metod, Activity’nin onCreate () metodunun tamamlandığını belirtmek için onCreate () ve onCreateView () metodlarından sonra çağrılır.
  5. onStart() : Fragment görünür hale geldiğinde(visible olduğunda) onStart () yöntemi çağrılır
  6. onPause(): Uygulama, Fragment’tan ayrıldığında(başka bir uygulamaya geçiş gibi) ilk olarak bu metod çağırılır.
class MyPagingSource(private val apiService: ApiService) : PagingSource<Int, Data>() {
override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Data> {
try {
val pageNumber = params.key ?: 1
val pageSize = params.loadSize
val response = apiService.getData(pageNumber, pageSize)
val data = response.body() ?: return LoadResult.Error(Exception("Response is null"))
val prevKey = if (pageNumber == 1) null else pageNumber - 1
val nextKey = if (data.isEmpty()) null else pageNumber + 1
return LoadResult.Page(data, prevKey, nextKey)
@RunWith(AndroidJUnit4ClassRunner::class)
class UserDaoTest {
private lateinit var db: TestUserDatabase
private lateinit var userDao: UserDao
@Before
fun createDb() {
val context = InstrumentationRegistry.getInstrumentation().targetContext
db = Room.inMemoryDatabaseBuilder(context, TestUserDatabase::class.java).build()
userDao = db.userDao()
class MyPagingSource(private val apiService: ApiService) : PagingSource<Int, Data>() {
override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Data> {
try {
val pageNumber = params.key ?: 1
val pageSize = params.loadSize
val response = apiService.getData(pageNumber, pageSize)
val data = response.body() ?: return LoadResult.Error(Exception("Response is null"))
val prevKey = if (pageNumber == 1) null else pageNumber - 1
val nextKey = if (data.isEmpty()) null else pageNumber + 1
return LoadResult.Page(data, prevKey, nextKey)
class MyPagingDataAdapter : PagingDataAdapter<Data, MyPagingDataAdapter.ViewHolder>(diffCallback) {
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val data = getItem(position)
data?.let {
holder.bind(data)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
class MyPagingActivity : AppCompatActivity() {
private val viewModel: MyViewModel by viewModels()
private lateinit var adapter: MyPagingDataAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityMyPagingBinding.inflate(layoutInflater)
setContentView(binding.root)
adapter = MyPagingDataAdapter()