Skip to content

Instantly share code, notes, and snippets.

@malikkurosaki
Created October 16, 2019 07:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save malikkurosaki/bee9ef162bc0ef0454881f535e0078e9 to your computer and use it in GitHub Desktop.
Save malikkurosaki/bee9ef162bc0ef0454881f535e0078e9 to your computer and use it in GitHub Desktop.
room database recyclerview update ui

room database

package dev.malikkurosaki.patungan;

import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.material.tabs.TabLayout;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.room.Database;
import butterknife.BindView;
import butterknife.ButterKnife;
import dev.malikkurosaki.patungan.DatabaseNya.DataBaseNya;
import dev.malikkurosaki.patungan.DatabaseNya.Tabel_jenis;

public class Perhitungan_patungan extends Fragment {

    @BindView(R.id.containerJenis)
    RecyclerView containerJenis;
    @BindView(R.id.tambahNamaNya)
    EditText tambahNamaNya;
    @BindView(R.id.tambahNilainNya)
    EditText tambahNilainNya;
    @BindView(R.id.tombolTambahJenisNya)
    Button tombolTambahJenisNya;
    private Context context;
    private Activity activity;
    private String TAG = "tagnya";

    private DataBaseNya dataBaseNya;
    List<Tabel_jenis> ls;
    Adapter_wadah_jenis adapter;

    public Perhitungan_patungan() {
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        this.context = context;
        this.activity = (Activity) context;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        dataBaseNya = DataBaseNya.getInstance(context);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.perhitungan_patungan, container, false);
        ButterKnife.bind(this, view);
        return view;
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        init();
    }

    private void init() {

        ls = new ArrayList<>();
        adapter = new Adapter_wadah_jenis(context,ls);
        containerJenis.setLayoutManager(new LinearLayoutManager(context));
        containerJenis.setAdapter(adapter);


        Tabel_jenis jenis = new Tabel_jenis();
        jenis.setNama("nama");
        jenis.setHarga("5555");

        AsyncTask.execute(()->{
            List<Tabel_jenis> ltb = dataBaseNya.databaseDao().getAllTableJenis();
            activity.runOnUiThread(()->{
                ls.clear();
                ls.addAll(ltb);
                adapter.notifyDataSetChanged();

            });

        });

        /*dataBaseNya = DataBaseNya.getInstance(context);
        AsyncTask.execute(()->{
            List<Tabel_jenis> data = dataBaseNya.databaseDao().getAllTableJenis();
             list = new ArrayList<>();
            for (Tabel_jenis tabel_jenis : data){
                Map<String,Object> wadah = new HashMap<>();
                wadah.put("nama",tabel_jenis.getNama());
                wadah.put("harga",tabel_jenis.getHarga());
                wadah.put("id",tabel_jenis.getId());
                list.add(wadah);
            }

            activity.runOnUiThread(() -> {
                adapter_wadah_jenis = new Adapter_wadah_jenis(context,list);
                containerJenis.setLayoutManager(new LinearLayoutManager(context));
                containerJenis.setAdapter(adapter_wadah_jenis);

                tombolTambahJenisNya.setOnClickListener(v->{
                    AsyncTask.execute(() -> {
                        List<Tabel_jenis> listJumblah = dataBaseNya.databaseDao().getAllTableJenis();
                        int totalNya = listJumblah.size();

                        String nama = tambahNamaNya.getText().toString().trim();
                        String harga = tambahNilainNya.getText().toString().trim();

                        if (nama.isEmpty() || harga.isEmpty()){
                            activity.runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(getContext(),"isi semuanya",Toast.LENGTH_LONG).show();
                                }
                            });

                            return;
                        }

                        Tabel_jenis tabel_jenis = new Tabel_jenis();
                        tabel_jenis.setNama(nama);
                        tabel_jenis.setHarga(harga);

                        dataBaseNya.databaseDao().insertDataTabelJenis(tabel_jenis);
                        List<Tabel_jenis> listJumblah2  = dataBaseNya.databaseDao().getAllTableJenis();
                        int totalnya2 = listJumblah2.size();

                        if (totalnya2 > totalNya){
                            AsyncTask.execute(()->{
                                List<Tabel_jenis> list2 = dataBaseNya.databaseDao().getAllTableJenis();
                                activity.runOnUiThread(()->{
                                    list = dataListNya(list2);

                                    containerJenis.setAdapter(adapter_wadah_jenis);
                                    adapter_wadah_jenis.notifyDataSetChanged();


                                    Toast.makeText(getContext(),"update",Toast.LENGTH_LONG).show();
                                });
                            });


                        }else {
                            activity.runOnUiThread(()->{
                                Toast.makeText(getContext(),"tidak ada perubahan",Toast.LENGTH_LONG).show();
                            });
                        }
                    });

                });


                adapter_wadah_jenis.setKetikaTombolDeleteDitekan((view, posisi) -> AsyncTask.execute(()->{
                    dataBaseNya.databaseDao().hapusSemuanya();
                    List<Tabel_jenis> berapa = dataBaseNya.databaseDao().getAllTableJenis();
                    if (berapa.size() > 0){
                        activity.runOnUiThread(()->{
                            Toast.makeText(getContext(),"gagal",Toast.LENGTH_LONG).show();
                        });
                    }else {
                        activity.runOnUiThread(()->{
                            Toast.makeText(getContext(),"ya",Toast.LENGTH_LONG).show();
                        });
                    }
                }));

            });

        });*/

    }

    List<Map<String,Object>> dataListNya(List<Tabel_jenis> tabelNya){
        List<Map<String,Object>> listSatu = new ArrayList<>();
        for (Tabel_jenis tabel_jenis : tabelNya){
            Map<String,Object> wadah = new HashMap<>();
            wadah.put("nama",tabel_jenis.getNama());
            wadah.put("harga",tabel_jenis.getHarga());
            wadah.put("id",tabel_jenis.getId());
            listSatu.add(wadah);
        }
        return listSatu;
    }


}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment