So I'm making an android app. I've already managed to create a Login & Registration page (both works, data gets stored in a MySQL database).
The next thing I want to do is when the user logs in his/her username will be displayed in a TextView on the homepage (a different activity, which consists of fragments. So to be clear, the MainActivity consists of 4 fragments, and when the user logs in he navigates to the HomeFragment).
I'm new to Java and app development in general so any help would be appreciated! So what I want to accomplish is to store the username from the database in a key or variable (?) and set the TextView on the home fragment to this username. Here are the Login and Homefragment scripts.
Login.java
package com.example.parrealityapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.content.SharedPreferences;
import com.google.android.material.textfield.TextInputEditText;
import com.vishnusivadas.advanced_httpurlconnection.PutData;
public class LogIn extends AppCompatActivity {
TextInputEditText textInputEditTextUsername, textInputEditTextPassword;
Button btnlogin;
ProgressBar progressBar;
TextView textViewSignUp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_in);
textInputEditTextUsername = findViewById(R.id.usernameLogin);
textInputEditTextPassword = findViewById(R.id.passwordLogin);
btnlogin = findViewById(R.id.btnlogin);
textViewSignUp = findViewById(R.id.signUpTxt);
progressBar = findViewById(R.id.progress);
textViewSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Intent intent = new Intent(getApplicationContext(), SignUp.class);
startActivity(intent);
finish();
}
});
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String username, password;
username = String.valueOf(textInputEditTextUsername.getText());
password = String.valueOf(textInputEditTextPassword.getText());
if (!username.equals("") && !password.equals("")) {
progressBar.setVisibility(View.VISIBLE);
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
String[] field = new String[2];
field[0] = "username";
field[1] = "password";
String[] data = new String[2];
data[0] = username;
data[1] = password;
PutData putData = new PutData("http://192.168.75.129/loginregister/login.php", "POST", field, data);
if (putData.startPut()) {
if (putData.onComplete()) {
progressBar.setVisibility(View.GONE);
String result = putData.getResult();
if (result.equals("Login Success")) {
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
} else {
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
}
}
}
}
});
}
else {
Toast.makeText(getApplicationContext(), "Vul alle velden in.", Toast.LENGTH_SHORT).show();
}
}
});
}
}
fragment_home.XML
<?xml version="1.0" encoding="utf-8"?>
<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=".ui.home.HomeFragment">
<TextView
android:id="@+id/txtName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="132dp"
android:layout_marginEnd="250dp"
android:textSize="45sp"
android:text="@string/dashboard"
android:fontFamily="@font/roboto_black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>