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)
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 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)
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 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:
<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
SharedPreferences ile Oturum Yönetimi:
// 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() }
Şifre Gizleme/Gösterme:
<EditText
android:id="@+id/etPassword"
...
android:inputType="textPassword" />ProgressBar ile Yükleme Göstergesi:
// 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