SelectChemicalDialog.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package xn.hxp.weidith;
  2. import android.app.Dialog;
  3. import android.content.Context;
  4. import android.graphics.Color;
  5. import android.graphics.drawable.ColorDrawable;
  6. import android.os.Bundle;
  7. import android.view.Gravity;
  8. import android.view.View;
  9. import android.view.Window;
  10. import android.view.WindowManager;
  11. import androidx.annotation.NonNull;
  12. import androidx.recyclerview.widget.LinearLayoutManager;
  13. import xn.hxp.R;
  14. import xn.hxp.databinding.DcaeDialogBinding;
  15. import xn.hxp.ui.adapter.SelectChemicalDialogAdapter;
  16. import com.blankj.utilcode.util.ClickUtils;
  17. import com.rc.httpcore.bean.HxpChemicalVo;
  18. import java.util.List;
  19. public class SelectChemicalDialog extends Dialog {
  20. private DcaeDialogBinding binding;
  21. private Context context;
  22. private SelectChemicalDialogAdapter selectChemicalDialogAdapter;
  23. private List<HxpChemicalVo> hxpChemicalVoList;
  24. private SelectedListener selectedListener;
  25. public SelectChemicalDialog(@NonNull Context context, List<HxpChemicalVo> hxpChemicalVoList, SelectedListener selectedListener) {
  26. super(context);
  27. this.context = context;
  28. this.hxpChemicalVoList = hxpChemicalVoList;
  29. this.selectedListener = selectedListener;
  30. }
  31. public interface SelectedListener {
  32. void selected(HxpChemicalVo hxpChemicalVo);
  33. }
  34. @Override
  35. protected void onCreate(Bundle savedInstanceState) {
  36. super.onCreate(savedInstanceState);
  37. requestWindowFeature(Window.FEATURE_NO_TITLE);
  38. binding = DcaeDialogBinding.inflate(getLayoutInflater());
  39. setContentView(binding.getRoot());
  40. getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
  41. getWindow().setGravity(Gravity.CENTER);
  42. getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
  43. setCanceledOnTouchOutside(false);
  44. LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
  45. binding.rvView.setLayoutManager(layoutManager);
  46. selectChemicalDialogAdapter = new SelectChemicalDialogAdapter(R.layout.chemical_search_rv, hxpChemicalVoList);
  47. binding.rvView.setAdapter(selectChemicalDialogAdapter);
  48. selectChemicalDialogAdapter.setOnItemClickListener((adapter, view, position) -> {
  49. selectedListener.selected(selectChemicalDialogAdapter.getData().get(position));
  50. dismiss();
  51. });
  52. binding.butClos.setOnClickListener(new ClickUtils.OnDebouncingClickListener() {
  53. @Override
  54. public void onDebouncingClick(View v) {
  55. dismiss();
  56. }
  57. });
  58. }
  59. }