I am a newbie at android studio and kotlin. Now im working with a firebase login/register app. On the code menu there is error but when i try on avg emulator app shutdown immediately. Can you help me Please
Here is my codes
My Manifest
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ASSK">
<activity
android:name=".RegisterActivity"
android:exported="false" />
<activity
android:name=".LoginActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:exported="false" />
</application>
Here is my activity.kt
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.tasks.OnCompleteListener
import com.google.firebase.auth.AuthResult
import com.google.firebase.auth.FirebaseAuth
import kotlinx.android.synthetic.main.activity_register.*
class LoginActivity : AppCompatActivity()
{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)```
val btnlogin: Button = findViewById(R.id.btn_login)
val etemail: EditText = findViewById(R.id.et_login_email)
val etpassword: EditText = findViewById(R.id.et_login_password)
btnlogin.setOnClickListener {
if (etemail.text.toString().trim().isEmpty()) {
Toast.makeText(
this@LoginActivity,
"Email Alanını Doldurun",
Toast.LENGTH_SHORT
).show()
(etpassword.text.toString().trim().isEmpty())
Toast.makeText(
this@LoginActivity,
"Şifre Alanını Doldurun",
Toast.LENGTH_SHORT
).show()
} else {
val email: String = etemail.text.toString().trim { it <= ' ' }
val password: String = etpassword.text.toString().trim { it <= ' ' }
FirebaseAuth.getInstance().signInWithEmailAndPassword(email, password)
.addOnCompleteListener(
OnCompleteListener<AuthResult> { task ->
if (task.isSuccessful) {
Toast.makeText(
this@LoginActivity,
"Başarı İle Giriş Yapıldı",
Toast.LENGTH_SHORT
).show()
val intent =
Intent(this@LoginActivity, MainActivity::class.java)
intent.flags =
Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
intent.putExtra(
"user_id", FirebaseAuth.getInstance().currentUser!!.uid)
intent.putExtra("email_id", email)
startActivity(intent)
finish()
} else {
Toast.makeText(
this@LoginActivity,
task.exception!!.message.toString(),
Toast.LENGTH_SHORT
).show()
}
}
)
}
}
}
}
Idk why but import part and some of codes nor formatted sorry for that.
And for the last here is my layout.xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LoginActivity"
android:background="@drawable/background">
<TextView
android:id="@ id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="225dp"
android:fontFamily="@font/league_spartan_bold"
android:text="Giriş Yap"
android:textColor="#222934"
android:textSize="25sp"
android:textStyle="normal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@ id/et_login_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="50dp"
android:layout_marginEnd="20dp"
android:inputType="textEmailAddress"
app:helperText="Zorunlu"
app:helperTextTextColor="@android:color/holo_red_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@ id/tv_title"
tools:text="[email protected]"
android:hint="E-Mail">
<EditText
android:id="@ id/til_login_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
tools:text="[email protected]">
</EditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@ id/til_login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:hint="Şifre"
app:helperText="Zorunlu"
app:helperTextTextColor="@android:color/holo_red_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@ id/et_login_email">
<EditText
android:id="@ id/et_login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
tools:text="123456">
</EditText>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@ id/btn_login"
android:foreground="?attr/selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:background="@color/gri"
android:gravity="center"
android:text="Giriş Yap"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@ id/til_login_password" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_login">
<TextView
android:id="@ id/tv_dont_have_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="sans-serif-medium"
android:padding="5dp"
android:text="Mevcut Hesabın Yok mu ?">
</TextView>
<TextView
android:id="@ id/tv_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="@font/league_spartan_bold"
android:foreground="?attr/selectableItemBackground"
android:padding="5dp"
android:text="Kayıt Ol"
android:textStyle="normal">
</TextView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
And here is my logcat report
Process: com.example.assk, PID: 6762
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.assk/com.example.assk.LoginActivity}: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to android.widget.EditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to android.widget.EditText
at com.example.assk.LoginActivity.onCreate(LoginActivity.kt:23)
at android.app.Activity.performCreate(Activity.java:8000)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)```
The format error happened again idk why it happens sorry for that. So here is my all codes what can i do pls help me
CodePudding user response:
you are referencing to wrong view just change your code like this:
val btnlogin: Button = findViewById(R.id.btn_login)
val etemail: EditText = findViewById(R.id.til_login_email)
val etpassword: EditText = findViewById(R.id.et_login_password)
This should solve your problem.