Advertisement
truesdale

mylistdata.java

Sep 19th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.72 KB | None | 0 0
  1. package com.smkn.firebasecrud;
  2.  
  3. import android.os.Bundle;
  4. import android.util.Log;
  5. import android.widget.Toast;
  6.  
  7. import androidx.appcompat.app.AppCompatActivity;
  8. import androidx.core.content.ContextCompat;
  9. import androidx.recyclerview.widget.DividerItemDecoration;
  10. import androidx.recyclerview.widget.LinearLayoutManager;
  11. import androidx.recyclerview.widget.RecyclerView;
  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. import java.util.ArrayList;
  22.  
  23. import static com.smkn.firebasecrud.R.drawable;
  24. import static com.smkn.firebasecrud.R.id;
  25.  
  26. public class MyListData extends AppCompatActivity implements dataListener {
  27.  
  28. //Deklarasi Variable untuk RecyclerView
  29. private RecyclerView recyclerView;
  30. private RecyclerView.Adapter adapter;
  31. private RecyclerView.LayoutManager layoutManager;
  32.  
  33. //Deklarasi Variable Database Reference dan ArrayList dengan Parameter Class Model kita.
  34. private DatabaseReference reference;
  35. private ArrayList<data_mahasiswa> dataMahasiswa;
  36.  
  37. private FirebaseAuth auth;
  38.  
  39. @Override
  40. protected void onCreate(Bundle savedInstanceState) {
  41. super.onCreate(savedInstanceState);
  42. setContentView(R.layout.activity_my_list_data);
  43. recyclerView = findViewById(id.datalist);
  44. getSupportActionBar().setTitle("Data Mahasiswa");
  45. auth = FirebaseAuth.getInstance();
  46. MyRecyclerView();
  47. GetData();
  48. }
  49.  
  50. //Berisi baris kode untuk mengambil data dari Database dan menampilkannya kedalam Adapter
  51. private void GetData() {
  52. Toast.makeText(getApplicationContext(), "Mohon Tunggu Sebentar...", Toast.LENGTH_LONG).show();
  53. //Mendapatkan Referensi Database
  54. reference = FirebaseDatabase.getInstance().getReference();
  55. reference.child("Admin").child(auth.getUid()).child("Mahasiswa")
  56. .addValueEventListener(new ValueEventListener() {
  57.  
  58. @Override
  59. public void onDataChange(DataSnapshot dataSnapshot) {
  60. //Inisialisasi ArrayList
  61. dataMahasiswa = new ArrayList<>();
  62. for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
  63. //Mapping data pada DataSnapshot ke dalam objek mahasiswa
  64. data_mahasiswa Mahasiswa = snapshot.getValue(data_mahasiswa.class);
  65.  
  66. //Mengambil Primary Key, digunakan untuk proses Update dan Delete
  67. Mahasiswa.setKey(snapshot.getKey());
  68. dataMahasiswa.add(Mahasiswa);
  69. }
  70.  
  71. //Inisialisasi Adapter dan data Mahasiswa dalam bentuk Array
  72. adapter = new RecyclerViewAdapter(dataMahasiswa, MyListData.this);
  73.  
  74. //Memasang Adapter pada RecyclerView
  75. recyclerView.setAdapter(adapter);
  76. adapter.notifyDataSetChanged();
  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("MyListData", 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