untung99play.xyz: Example and explanation Android Studio Login Activity Template generated activity
Untung99 menawarkan beragam permainan yang menarik, termasuk slot online, poker, roulette, blackjack, dan taruhan olahraga langsung. Dengan koleksi permainan yang lengkap dan terus diperbarui, pemain memiliki banyak pilihan untuk menjaga kegembiraan mereka. Selain itu, Untung99 juga menyediakan bonus dan promosi menarik yang meningkatkan peluang kemenangan dan memberikan nilai tambah kepada pemain.
Berikut adalah artikel atau berita tentang Harian untung99play.xyz dengan judul untung99play.xyz: Example and explanation Android Studio Login Activity Template generated activity yang telah tayang di untung99play.xyz terimakasih telah menyimak. Bila ada masukan atau komplain mengenai artikel berikut silahkan hubungi email kami di [email protected], Terimakasih.
Step 1: Make Login successful and advance to main activity
To have the login activity to fail when wrong user/password is used, and go to main activity when successful, you need to make the following corrections to the generated code:
AndroidManifest.xml
:
Move the following code from you main activity to the LoginActivity section:
Then edit the LoginActivity.java
and do the following changes:
Inside doInBackground
method, at the end replace the returned value from true
to false
@Override
protected Boolean doInBackground(Void... params) {
for (String credential : DUMMY_CREDENTIALS) {
String[] pieces = credential.split(":");
if (pieces[0].equals(mEmail)) {
// Account exists, return true if the password matches.
return pieces[1].equals(mPassword);
}
}
// TODO: register the new account here.
return false;
}
Then on the onPostExecute
method, add a new intent after the finish();
:
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
showProgress(false);
if (success) {
finish();
Intent myIntent = new Intent(LoginActivity.this,MyMainActivity.class);
LoginActivity.this.startActivity(myIntent);
} else {
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
}
Now login should be successful using one of the following user:password
credentials:
- [email protected]:hello
- [email protected]:world
Other user:password
try should state incorrect password and stay on Login page.
Step 2: Allow registration, store login into the database and check credentials vs DB
We now will get Login info from database (SQLite) instead of static variable. This will allow us to have more than 1 user registered on the device.
First, create a new User.java
class:
package com.clinsis.onlineresults.utils;
/**
* Created by csimon on 5/03/14.
*/
public class User {
public long userId;
public String username;
public String password;
public User(long userId, String username, String password){
this.userId=userId;
this.username=username;
this.password=password;
}
}
Then create or update your SQLite helper (DBTools.java
in my case) class:
package com.clinsis.onlineresults.utils;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by csimon on 12/11/13.
*/
public class DBTools extends SQLiteOpenHelper {
private final static int DB_VERSION = 10;
public DBTools(Context context) {
super(context, "myApp.db", null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query = "create table logins (userId Integer primary key autoincrement, "+
" username text, password text)";
sqLiteDatabase.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
try{
System.out.println("UPGRADE DB oldVersion="+oldVersion+" - newVersion="+newVersion);
onCreate(sqLiteDatabase);
if (oldVersion<10){>10){>
Note: DB_VERSION
is used to detect upgrade/downgrade of the DB schema 😉
Then modify the LoginActivity.java as follow:
Add the following imports:
import android.widget.Toast;
import com.clinsis.onlineresults.utils.DBTools;
import com.clinsis.onlineresults.utils.User;
Add a new variable:
private User myUser;
Remove DUMMY_CREDENTIALS
variable declaration.
In attemptLogin
method, add context when calling UserLoginTask
:
mAuthTask = new UserLoginTask(email, password, this);
Replace the internal UserLoginTask class with the following code:
/**
* Represents an asynchronous login/registration task used to authenticate
* the user.
*/
public class UserLoginTask extends AsyncTask {
private final String mEmail;
private final String mPassword;
private final Context mContext;
UserLoginTask(String email, String password, Context context) {
mEmail = email;
mPassword = password;
mContext= context;
}
@Override
protected Boolean doInBackground(Void... params) {
DBTools dbTools=null;
try{
dbTools = new DBTools(mContext);
myUser = dbTools.getUser(mEmail);
if (myUser.userId>0) {
// Account exists, check password.
if (myUser.password.equals(mPassword))
return true;
else
return false;
} else {
myUser.password=mPassword;
return true;
}
} finally{
if (dbTools!=null)
dbTools.close();
}
// return false if no previous checks are true
return false;
}
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
showProgress(false);
if (success) {
if (myUser.userId>0){
finish();
Intent myIntent = new Intent(LoginActivity.this,ReportListActivity.class);
LoginActivity.this.startActivity(myIntent);
} else {
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
DBTools dbTools=null;
try{
finish();
dbTools = new DBTools(mContext);
myUser=dbTools.insertUser(myUser);
Toast myToast = Toast.makeText(mContext,R.string.updatingReport, Toast.LENGTH_SHORT);
myToast.show();
Intent myIntent = new Intent(LoginActivity.this,ReportListActivity.class);
LoginActivity.this.startActivity(myIntent);
} finally{
if (dbTools!=null)
dbTools.close();
}
break;
case DialogInterface.BUTTON_NEGATIVE:
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this.mContext);
builder.setMessage(R.string.confirm_registry).setPositiveButton(R.string.yes, dialogClickListener)
.setNegativeButton(R.string.no, dialogClickListener).show();
}
} else {
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
}
@Override
protected void onCancelled() {
mAuthTask = null;
showProgress(false);
}
}
In strings.xml
, add:
Email not found. You want to create a new user with that email and password?
Yes
No
I hope I did not forget anything… It worked fine for me 😀
If email is not present in the DB, it will propose to register it, otherwise it will check the email versus the password.
Have fun with Android 😀
}}}}}}