Wednesday, August 30, 2017

Membuat App Android Karyawan Inventory Menggunakan CRUD SQLite Part 2

Hallo Kuy, Masih setia dengan kodingnya? masih setia belajar android Proggramming?
pada kesempatan kali ini saya mengupdate aplikasi Crud yang kemarin, yang belum mempunyai fitur Logout dan Session Login, pada kesempatan kali ini saya menambahkan fitur tersebut yang mana aplikasi setelah login akan menyimpan user tersebut, seperti mana app facebook, walaupun hp katankalah mati atau app itu keluar dari recent dan ketika kita buka kembali kita tidak di arahkan lagi ke halaman login, karena login kita itu masih tersimpan pada memory android, yang saya gunakan yaitu shared preference, shared preference yaitu sebenarnya class yang memang sudah ada pada android tinggal kita panggil untuk digunakan seperti ini conthnya :
baca juga untuk crud part 1

SharedPreferences pref;

dan untuk pada kelas yang ingi kita berikan session kita gunakan ini

session = new SessionManager(getApplicationContext());
untuke secara lengkapnya dapat di lihat seperti kode dibawah ini

class SessionManager.java
package id.co.imastudio.santri.karyawaninven;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;

import java.util.HashMap;

/** * Created by Server on 30/08/2017. */
public class SessionManager {

    SharedPreferences pref;
    SharedPreferences.Editor editor;
    Context context;
    int mode = 0;

    private static final String pref_name = "crudpref";
    private static final String is_login = "islogin";
    public static final String kunci_email = "keyemail";

    public SessionManager(Context context) {
        this.context = context;
        pref = context.getSharedPreferences(pref_name, mode);
        editor = pref.edit();
    }

    public void createSession(String email){
        editor.putBoolean(is_login, true);
        editor.putString(kunci_email, email);
        editor.commit();
    }

    public void checkLogin(){
        if (!this.is_login()){
            Intent i = new Intent(context, Login.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }else {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }

    private boolean is_login() {
        return pref.getBoolean(is_login, false);
    }

    public void logout(){
        editor.clear();
        editor.commit();
        Intent i = new Intent(context, Login.class);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }

    public HashMap<String, String> getUserDetails(){
        HashMap<String, String> user = new HashMap<String, String>();
        user.put(pref_name, pref.getString(pref_name, null));
        user.put(kunci_email, pref.getString(kunci_email, null));
        return user;
    }
}



baca crud kotlin
dan pada main activity ditambahkan seperti kode berikut ini :

package id.co.imastudio.santri.karyawaninven;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import java.util.HashMap;

import id.co.imastudio.santri.karyawaninven.adapter.TambahKaryawan;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //deklarasi button    TextView txtUsername;
    ImageButton tmb, lht;
    String username;
    SessionManager session;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //deklarasi id button        tmb = (ImageButton) findViewById(R.id.tambah);
        lht = (ImageButton) findViewById(R.id.lihatData);
        lht.setOnClickListener((View.OnClickListener) this);
        tmb.setOnClickListener((View.OnClickListener) this);

        txtUsername = (TextView) findViewById(R.id.username);
        Intent getUsername = getIntent();
        username = getUsername.getStringExtra("username");


        session = new SessionManager(getApplicationContext());
        HashMap<String, String> user = session.getUserDetails();
        username = user.get(SessionManager.kunci_email);
        txtUsername.setText(username);
        // get user data from session

    }

    //method klik button yang mengarah ke insert/tambah data dan ke activty untuk melihat semudata    @Override    public void onClick(View view) {
        switch (view.getId()){
            case R.id.tambah:
                Intent i = new Intent(MainActivity.this, TambahKaryawan.class);
                startActivity(i);
                break;
            case R.id.lihatData:
                Intent i2 = new Intent(MainActivity.this, ListData.class);
                startActivity(i2);
                Toast.makeText(this,"Pindah ke",  Toast.LENGTH_LONG).show();
                break;
        }
    }
    //method agar tidak kemabli ke login    @Override    public void onBackPressed() {
        new AlertDialog.Builder(this)
                .setMessage("Apa kalian ingin Exit?")
                .setCancelable(false)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        session.logout();
                        finish();
                    }
                })
                .setNegativeButton("No", null)
                .show();
    }

}

saya menambahkan activity baru yaitu SplasScreen yang fungsinya akan mengecek login akun,
sessionManager.checkLogin();
secara keselurahan file javanya seperti berikut ini :

package id.co.imastudio.santri.karyawaninven;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;

public class SplashScreen extends AppCompatActivity {

    SessionManager sessionManager;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        sessionManager = new SessionManager(getApplicationContext());

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override            public void run() {
                sessionManager.checkLogin();
               // startActivity(new Intent(getApplicationContext(), MainActivity.class));                finish();
            }
        },2000);
    }
    }

untuk file lengkap download disini 
NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
 

Delivered by FeedBurner