AMP Analytics -->

Teknoloji Rehberi

16 Mayıs 2025 Cuma

Kotlin'de Login Aktivite Kullanımı

 

Kotlin'de Login Aktivite Kullanımı

Android'de bir login (giriş) aktivitesi oluşturmak için temel adımları aşağıda bulabilirsiniz. Bu örnekte, kullanıcı adı ve şifre alanlarıyla basit bir giriş ekranı ve başarılı giriş durumunda ana aktiviteye yönlendirme yapacağız.

1. Login Aktivitesi (LoginActivity.kt)

kotlin
Copy
Download
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast

class LoginActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)

        val usernameEditText = findViewById<EditText>(R.id.etUsername)
        val passwordEditText = findViewById<EditText>(R.id.etPassword)
        val loginButton = findViewById<Button>(R.id.btnLogin)

        loginButton.setOnClickListener {
            val username = usernameEditText.text.toString()
            val password = passwordEditText.text.toString()

            // Basit doğrulama (gerçek uygulamada sunucu doğrulaması yapılmalı)
            if (username == "admin" && password == "1234") {
                // Başarılı giriş - MainActivity'ye yönlendir
                val intent = Intent(this, MainActivity::class.java)
                intent.putExtra("username", username) // Kullanıcı adını geçir
                startActivity(intent)
                finish() // Login aktivitesini kapat
            } else {
                // Hatalı giriş
                Toast.makeText(this, "Kullanıcı adı veya şifre hatalı!", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

2. Login Layout (activity_login.xml)

xml
Copy
Download
Run
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    android:gravity="center">

    <EditText
        android:id="@+id/etUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Kullanıcı Adı"
        android:inputType="text" />

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:hint="Şifre"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Giriş Yap" />

</LinearLayout>

3. Main Aktivite (MainActivity.kt)

kotlin
Copy
Download
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val username = intent.getStringExtra("username")
        val welcomeText = findViewById<TextView>(R.id.tvWelcome)
        welcomeText.text = "Hoş geldiniz, $username!"
    }
}

4. Main Layout (activity_main.xml)

xml
Copy
Download
Run
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:id="@+id/tvWelcome"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hoş geldiniz!" />

</LinearLayout>

5. AndroidManifest.xml Ayarları

LoginActivity'yi başlangıç aktivitesi olarak ayarlayın:

xml
Copy
Download
Run
<application ... >
    <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <activity android:name=".MainActivity" />
</application>

Gelişmiş Özellikler İçin Eklemeler

  1. SharedPreferences ile Oturum Yönetimi:

kotlin
Copy
Download
// Giriş başarılı olduğunda
val sharedPref = getSharedPreferences("login_prefs", MODE_PRIVATE)
sharedPref.edit().putBoolean("is_logged_in", true).apply()

// Uygulama açıldığında kontrol
val isLoggedIn = sharedPref.getBoolean("is_logged_in", false)
if (isLoggedIn) {
    startActivity(Intent(this, MainActivity::class.java))
    finish()
}
  1. Şifre Gizleme/Gösterme:

xml
Copy
Download
Run
<EditText
    android:id="@+id/etPassword"
    ...
    android:inputType="textPassword" />
  1. ProgressBar ile Yükleme Göstergesi:

kotlin
Copy
Download
// Giriş butonuna tıklandığında
loginButton.isEnabled = false
progressBar.visibility = View.VISIBLE

// API çağrısı sonrası
loginButton.isEnabled = true
progressBar.visibility = View.GONE

Bu temel yapıyı kullanarak daha karmaşık login sistemleri (API entegrasyonu, token yönetimi, biyometrik giriş vb.) geliştirebilirsiniz.

Hiç yorum yok:

Yorum Gönder

Popular Posts