Advertisement
Guest User

mylistdata.java

a guest
Sep 15th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. package com.smkn.firebasecrud;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import androidx.core.content.ContextCompat;
  5. import androidx.recyclerview.widget.DividerItemDecoration;
  6. import androidx.recyclerview.widget.LinearLayoutManager;
  7. import androidx.recyclerview.widget.RecyclerView;
  8.  
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.widget.Toast;
  12.  
  13. import com.google.android.gms.tasks.OnSuccessListener;
  14. import com.google.firebase.auth.FirebaseAuth;
  15. import com.google.firebase.database.DataSnapshot;
  16. import com.google.firebase.database.DatabaseError;
  17. import com.google.firebase.database.DatabaseReference;
  18. import com.google.firebase.database.FirebaseDatabase;
  19. import com.google.firebase.database.ValueEventListener;
  20.  
  21.  
  22. import java.util.ArrayList;
  23.  
  24. import static com.smkn.firebasecrud.R.*;
  25. import static com.smkn.firebasecrud.R.layout.activity_my_list_data;
  26.  
  27. public class MyListData extends AppCompatActivity implements dataListener {
  28.  
  29. //Deklarasi Variable untuk RecyclerView
  30. private RecyclerView recyclerView;
  31. private RecyclerView.Adapter adapter;
  32. private RecyclerView.LayoutManager layoutManager;
  33.  
  34. //Deklarasi Variable Database Reference dan ArrayList dengan Parameter Class Model kita.
  35. private DatabaseReference reference;
  36. private ArrayList<data_mahasiswa> dataMahasiswa;
  37.  
  38. private FirebaseAuth auth;
  39.  
  40. @Override
  41. protected void onCreate(Bundle savedInstanceState) {
  42. super.onCreate(savedInstanceState);
  43. setContentView(layout.activity_my_list_data);
  44. recyclerView = findViewById(id.datalist);
  45. getSupportActionBar().setTitle("Data Mahasiswa");
  46. auth = FirebaseAuth.getInstance();
  47. MyRecyclerView();
  48. GetData();
  49. }
  50.  
  51. //Berisi baris kode untuk mengambil data dari Database dan menampilkannya kedalam Adapter
  52. private void GetData() {
  53. Toast.makeText(getApplicationContext(), "Mohon Tunggu Sebentar...", Toast.LENGTH_LONG).show();
  54. //Mendapatkan Referensi Database
  55. reference = FirebaseDatabase.getInstance().getReference();
  56. reference.child("Admin").child(auth.getUid()).child("Mahasiswa")
  57. .addValueEventListener(new ValueEventListener() {
  58.  
  59. @Override
  60. public void onDataChange(DataSnapshot dataSnapshot) {
  61. //Inisialisasi ArrayList
  62. dataMahasiswa = new ArrayList<>();
  63. for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
  64. //Mapping data pada DataSnapshot ke dalam objek mahasiswa
  65. data_mahasiswa mahasiswa = snapshot.getValue(data_mahasiswa.class);
  66.  
  67. //Mengambil Primary Key, digunakan untuk proses Update dan Delete
  68. mahasiswa.setKey(snapshot.getKey());
  69. dataMahasiswa.add(mahasiswa);
  70. }
  71.  
  72. //Inisialisasi Adapter dan data Mahasiswa dalam bentuk Array
  73. adapter = new RecyclerViewAdapter(dataMahasiswa, MyListData.this);
  74.  
  75. //Memasang Adapter pada RecyclerView
  76. recyclerView.setAdapter(adapter);
  77.  
  78. Toast.makeText(getApplicationContext(), "Data Berhasil Dimuat", Toast.LENGTH_LONG).show();
  79. }
  80.  
  81. @Override
  82. public void onCancelled(DatabaseError databaseError) {
  83. /*
  84. Kode ini akan dijalankan ketika ada error dan
  85. pengambilan data error tersebut lalu memprint error nya
  86. ke LogCat
  87. */
  88. Toast.makeText(getApplicationContext(), "Data Gagal Dimuat", Toast.LENGTH_LONG).show();
  89. Log.e("MyListActivity", databaseError.getDetails() + " " + databaseError.getMessage());
  90. }
  91. });
  92. }
  93.  
  94. //Methode yang berisi kumpulan baris kode untuk mengatur RecyclerView
  95. private void MyRecyclerView() {
  96. //Menggunakan Layout Manager, Dan Membuat List Secara Vertical
  97. layoutManager = new LinearLayoutManager(this);
  98. recyclerView.setLayoutManager(layoutManager);
  99. recyclerView.setHasFixedSize(true);
  100.  
  101. //Membuat Underline pada Setiap Item Didalam List
  102. DividerItemDecoration itemDecoration = new DividerItemDecoration(getApplicationContext(), DividerItemDecoration.VERTICAL);
  103. itemDecoration.setDrawable(ContextCompat.getDrawable(getApplicationContext(), drawable.line));
  104. recyclerView.addItemDecoration(itemDecoration);
  105.  
  106. }
  107.  
  108. @Override
  109. public void onDeleteData(data_mahasiswa data, int position) {
  110. /*
  111. * Kode ini akan dipanggil ketika method onDeleteData
  112. * dipanggil dari adapter pada RecyclerView melalui interface.
  113. * kemudian akan menghapus data berdasarkan primary key dari data tersebut
  114. * Jika berhasil, maka akan memunculkan Toast
  115. */
  116. String userID = auth.getUid();
  117. if (reference != null) {
  118. reference.child("Admin")
  119. .child(userID)
  120. .child("Mahasiswa")
  121. .child(data.getKey())
  122. .removeValue()
  123. .addOnSuccessListener(new OnSuccessListener() {
  124. @Override
  125. public void onSuccess(Object o) {
  126.  
  127. }
  128.  
  129. public void onSuccess(Void aVoid) {
  130. Toast.makeText(MyListData.this, "Data Berhasil Dihapus", Toast.LENGTH_SHORT).show();
  131. }
  132. });
  133. }
  134. }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement