【问题标题】:RecyclerView cardview from dialogfragment in fragment page片段页面中对话框片段的RecyclerView cardview
【发布时间】:2020-06-22 16:05:12
【问题描述】:

我需要根据 DiagloFragment 中写入的数据在片段中创建 recyclerview 卡片视图

你会怎么做?按下“HECHO”按钮后,如何使用列表创建回收站视图?

IMAGE CAPTURE DATA

您能否向我解释我应该怎么做,或者请发布一个示例(由您完成或发布在其他地方)?

非常感谢您。

DialogFragment 类:

   @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
   // View v = inflater.inflate(R.layout.fragment_captura_dialog_act, container, false);
    View v = inflater.inflate(R.layout.frag_capactividades, container, false);
    Spinner spinnerA;
    spinnerA = (Spinner)v.findViewById(R.id.spinnerConf);
    bguardar = (Button) v.findViewById(R.id.bGuaradrPaga);
    codigo = (EditText) v.findViewById(R.id.tCodData) ;
    precio = (EditText) v.findViewById(R.id.tPrecioData);
    preciounidadextra = (EditText) v.findViewById(R.id.preciouextra);
    cantidadminima = (EditText) v.findViewById(R.id.tCanMinData);
    primadominical = (EditText) v.findViewById(R.id.tPrimaData);
    final String tipojornada = spinnerA.getSelectedItem().toString();
    bguardar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Code create recyclerview
            empleado.guardaempleado(codigo.getText().toString(), precio.getText().toString(), preciounidadextra.getText().toString(), cantidadminima.getText().toString()
                    , primadominical.getText().toString(), tipojornada);
        }
    });

    return v;
}

}

卡片布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/txtcodigoMostrar"
        android:layout_width="1dp"
        android:layout_height="1dp"
        android:visibility="invisible" />

    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginLeft="16sp"
        android:layout_marginTop="16sp"
        android:src="@drawable/ajusted" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="70dp"
            android:layout_marginTop="10dp"
            android:width="2dp"
            android:gravity="right"
            android:text="Apuntador"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtNombreMostrar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="4dp"
            android:text="Nombre"
            android:textAlignment="center"
            android:textSize="16sp"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="70dp"
            android:layout_marginTop="10dp"
            android:width="2dp"
            android:gravity="right"
            android:text="Precio"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtPrecioMostrar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="4dp"
            android:text="Precio"
            android:textAlignment="center"
            android:textSize="16sp"
            android:textStyle="bold" />
    </LinearLayout>




</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    android:orientation="horizontal">

    <Button
        android:id="@+id/btnEditar"
        style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
        android:layout_width="100dp"
        android:layout_height="30dp"
        android:text="Editar"
        android:textSize="14dp"
        android:visibility="invisible" />

</LinearLayout>

cretae recyclerview 的片段类:

      public class empleado extends Fragment implements View.OnClickListener {
        FloatingActionButton btndialog;
        private SQLiteDatabase db;
        RecyclerView idrecyclerview, recyclerView;
        static List<ActividadesModel> listCont;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View v5 = inflater.inflate(R.layout.activity_empleado, container, false);
    
            RecyclerView recyclerView = v5.findViewById(R.id.idrecyclerviewCa);
            //recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 1));
            AdapterAct viewAdapter = new AdapterAct(getContext(), listCont);
            recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
            recyclerView.setAdapter(viewAdapter);
            return v5;
        }
    
     public empleado(String codigo,String precio,String preciounidadextra,String cantidadminima,String primadominical,String tipojornada){
    
        }
    
        public static void guardaempleado(String codigo, String precio, String preciounidadextra, String cantidadminima, String primadominical, String tipojornada){
            listCont = new ArrayList<>();
            listCont.add(new ActividadesModel("codigo", "precio", "preciounidadextra", "cantidadminima", "primadominical", "tipojornada"));
        }


 private void ShowMessage() {
        final String[] actividades = {"act1", "act2", "act3", "act4", "act5"};
        final int itemSelected = 0;
        new AlertDialog.Builder(getContext())
                .setTitle("Selecciona la actividad")
                .setSingleChoiceItems(actividades, itemSelected, new DialogInterface.OnClickListener() {
                    @Override
                    //  public void onClick(DialogInterface dialogInterface, int selectedIndex) {
                    public void onClick(DialogInterface dialog, int position) {

                        // String nombreselect = empleados[position];
                        Toast.makeText(getContext(), "Position: " + position, Toast.LENGTH_SHORT).show();
                        String nombreselect = actividades[position];

                        SharedPreferences sharedPrefs = getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
                        SharedPreferences.Editor editor = sharedPrefs.edit();
                        editor.putString("actividad", nombreselect);
                        editor.commit();

                      //  empleado.setText(empleadotext);
                    }
                })
               // .setNeutralButton("OK", null)
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // continue with delete
                        FragmentManager fm = getActivity().getSupportFragmentManager();
                        DialogFragment dialogs = new CapturaDialogAct(); // creating new object
                        dialogs.show(fm, "dialog");
                    }
                })
                .show();

    }

CaptureDialog 类:

public class CapturaDialogAct extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
TextView textView;
Button bguardar;
EditText codigo,precio,preciounidadextra, cantidadminima,primadominical;
Adapter rvAdapter;
RecyclerView recyclerView;
private static RecyclerView.Adapter adapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
   // View v = inflater.inflate(R.layout.fragment_captura_dialog_act, container, false);
    View v = inflater.inflate(R.layout.frag_capactividades, container, false);
    Spinner spinnerA;
    spinnerA = (Spinner)v.findViewById(R.id.spinnerConf);
    bguardar = (Button) v.findViewById(R.id.bGuaradrPaga);
    codigo = (EditText) v.findViewById(R.id.tCodData) ;
    precio = (EditText) v.findViewById(R.id.tPrecioData);
    preciounidadextra = (EditText) v.findViewById(R.id.preciouextra);
    cantidadminima = (EditText) v.findViewById(R.id.tCanMinData);
    primadominical = (EditText) v.findViewById(R.id.tPrimaData);
    final String tipojornada = spinnerA.getSelectedItem().toString();
    bguardar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Code create recyclerview
            empleado.guardaempleado(codigo.getText().toString(), precio.getText().toString(), preciounidadextra.getText().toString(), cantidadminima.getText().toString()
                    , primadominical.getText().toString(), tipojornada);
        }
    });

    return v;
}

}

型号:

    public class ActividadesModel implements Serializable {
    private String  codigo ,precio, preciounidadextra, cantidadminima, primadominical, tipojordana;
   public ActividadesModel( String precio, String preciounidadextra, String cantidadminima, String primadominical, String codigo, String tipojordana){
       this.codigo = codigo;
   }
    public String getCodigo()
   {
       return codigo;
   }
   public void setCodigo(String codigo){
       this.codigo = codigo;
   }

   public String getPrecio(){
       return precio;
   }

   public void setPrecio(){
       this.precio = precio;
   }

   public String getPreciounidadextra(){
       return preciounidadextra;
   }

   public void setPreciounidadextra(){
       this.preciounidadextra = preciounidadextra;
   }

   public String getCantidadminima(){
       return cantidadminima;
   }
   public void setCantidadminima(){
       this.cantidadminima = cantidadminima;
   }

   public String getPrimadominical(){
       return primadominical;
   }
   public void setPrimadominical(){
       this.primadominical = primadominical;
   }

   public String getTipojordana(){
       return tipojordana;
   }
   public void setTipojordana(){
       this.tipojordana = tipojordana;
   }
}

添加适配器:

public class AdapterAct extends RecyclerView.Adapter<AdapterAct.MyViewHolder> implements Filterable {

private List<ActividadesModel> actividadesModelList = new ArrayList<>();
private Context context;

private List<ActividadesModel> actividadesArrayList;

private IAxiliarActividades iAxiliarActividades;

List<ActividadesModel> contactList;


public AdapterAct(Context context, List<ActividadesModel> listCont) {
    this.context = context;
    this.contactList = contactList;
}


@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
   // return null;
    View v;
    v = LayoutInflater.from(context).inflate(R.layout.card_actividad, parent, false);
    MyViewHolder myViewHolder = new MyViewHolder(v);
    return myViewHolder;
}

public static class MyViewHolder extends RecyclerView.ViewHolder {

    TextView name;
    TextView precio;



    public MyViewHolder(View itemView) {
        super(itemView);

        name = (TextView) itemView.findViewById(R.id.txtNombreMostrar);
        precio = (TextView) itemView.findViewById(R.id.txtPrecioMostrar);

    }
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    //Codigo para crear el listado de acitividades

}

@Override
public int getItemCount() {
    return 0;
}

@Override
public Filter getFilter() {
    return null;
}

public class myViewHolder extends RecyclerView.ViewHolder {

    TextView nombre, precio;


    public myViewHolder(@NonNull View itemView) {
        super(itemView);
    }
}

}

【问题讨论】:

  • 嗨墨西哥人,你能详细说明一下吗?我知道您在图片中有一个 DialogFragment 有一个按钮和其他东西,然后当您按下按钮时您想做什么?...我无法理解这一点
  • 嗨 Zain,我正在编辑我的帖子,当单击对话框片段中的按钮回显时,我需要在片段中创建一个 recyclerview 卡片视图
  • 那么,您有一些数据(DialogFragment 微调器的字符串)要发送回片段以便将其提供给 CardView 对吗?
  • 是的,没错,有5个textview和1个spinner
  • 加载对话框时,将数据写入其中并点击我需要创建recyclerview cardview的按钮

标签: android android-recyclerview


【解决方案1】:

请按照以下步骤为要返回到您的片段的DialogFragment 输入创建接口侦听器。

  • 第 1 步:CapturaDialogAct 内创建一个接口 DialogFragment,以及它的一个实例字段:
  • 第 2 步: 修改 CapturaDialogAct 以接受此参数 界面
  • 第 3 步: 每当您点击 DialogFragment 按钮。
class CapturaDialogAct extends DialogFragment {

    ...
    
    // Step 1
    public interface OnSelectionListener {
        void onConfirmed(String codigo, String precio, String preciounidadextra, String cantidadminima
                    , String primadominical, String tipojornada);
    }

    private OnSelectionListener mOnSelectionListener;

    // Step 2
    
    public CapturaDialogAct(OnSelectionListener listener) {
        this.mOnSelectionListener = listener;
    }



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       // View v = inflater.inflate(R.layout.fragment_captura_dialog_act, container, false);
        View v = inflater.inflate(R.layout.frag_capactividades, container, false);      
        //..... reset of code
        
        
        bguardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Code create recyclerview
                empleado.guardaempleado(codigo.getText().toString(), precio.getText().toString(), preciounidadextra.getText().toString(), cantidadminima.getText().toString()
                        , primadominical.getText().toString(), tipojornada);
                        
                        
                // Step 3
                if (mOnSelectionListener != null) {
                    mOnSelectionListener.onConfirmed(codigo.getText().toString(), precio.getText().toString(), preciounidadextra.getText().toString(), cantidadminima.getText().toString()
                        , primadominical.getText().toString(), tipojornada);
                }
                

            }
        });     
    }
   
}

第 4 步:在您的片段中,更改 DialogFragment 的实例化以实现接口并使用其回调处理返回的文本

替换

DialogFragment dialogs = new CapturaDialogAct(); // creating new object

// Step 4
DialogFragment dialogs = new CapturaDialogAct(new CapturaDialogAct.OnSelectionListener() {
    @Override
    public void onConfirmed(String codigo, String precio, String preciounidadextra, String cantidadminima
                , String primadominical, String tipojornada) {
        
        // Do whatever you want with the received text from the DialogFragment

    }); 

更新

它已经执行了所有步骤,它没有标记错误但它没有创建cardview,我会将适配器添加到帖子中 在第 4 步中更改 RecyclerView 适配器的列表,并更新 UI。

DialogFragment dialogs = new CapturaDialogAct(new CapturaDialogAct.OnSelectionListener() {
    @Override
    public void onConfirmed(String codigo, String precio, String preciounidadextra, String cantidadminima
                , String primadominical, String tipojornada) {
        
        // Do whatever you want with the received text from the DialogFragment
        listCont = new ArrayList<>();
        listCont.add(new ActividadesModel(codigo, precio, preciounidadextra, cantidadminima, primadominical, tipojornada));
        AdapterAct viewAdapter = new AdapterAct(getContext(), listCont);
        RecyclerView recyclerView = getView().findViewById(R.id.idrecyclerviewCa);
        //recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 1));
        AdapterAct viewAdapter = new AdapterAct(getContext(), listCont);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recyclerView.setAdapter(viewAdapter);

    }); 

编辑

当您将 RecyclerView 定义为onCreateView 的局部变量时会出现错误,因此您需要选择类 RecyclerView 字段。 所以,变化

public class empleado extends Fragment implements View.OnClickListener {

    RecyclerView idrecyclerview, recyclerView; // this is the field class variable

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v5 = inflater.inflate(R.layout.activity_empleado, container, false);

        recyclerView = v5.findViewById(R.id.idrecyclerviewCa); // here is the change

然后,当您点击对话框隐藏时添加dismiss() 以隐藏它。 因此,在您的对话框片段中添加dismiss(),如下所示

    bguardar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Code create recyclerview
            empleado.guardaempleado(codigo.getText().toString(), precio.getText().toString(), preciounidadextra.getText().toString(), cantidadminima.getText().toString()
                    , primadominical.getText().toString(), tipojornada);
            // Step 3
            if (mOnSelectionListener != null) {
                mOnSelectionListener.onConfirmed(codigo.getText().toString(), precio.getText().toString(), preciounidadextra.getText().toString(), cantidadminima.getText().toString()
                        , primadominical.getText().toString(), tipojornada);
            }

            dismiss(); /// <<<<< here is the change
        }
    });

还将适配器设置为片段类字段,以便在您关闭在empleado 片段中创建的AdapterAct mViewAdapter 对话框时使用它

这是修改后的整个片段


public class empleado extends Fragment implements View.OnClickListener {

    //private static ArrayList<Object> listCont;
    FloatingActionButton btndialog;
    // public static TextView empleado;
    private SQLiteDatabase db;
    RecyclerView idrecyclerview, recyclerView;
    static List<ActividadesModel> listCont;
    private AdapterAct mViewAdapter;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v5 = inflater.inflate(R.layout.activity_empleado, container, false);

        recyclerView = v5.findViewById(R.id.idrecyclerviewCa);
        recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 1));

        listCont = new ArrayList<>();
        mViewAdapter = new AdapterAct(getContext(), listCont);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recyclerView.setAdapter(mViewAdapter);
        return v5;
    }

    //public empleado(String codigo,String precio,String preciounidadextra,String cantidadminima,String primadominical,String tipojornada){
    public empleado() {
        //  listCont = new ArrayList<>();
        // listCont.add(new ActividadesModel("precio", "preciounidadextra", "cantidadminima", "primadominical", "codigo", "tipojornada"));
    }

    public static void guardaempleado(String codigo, String precio, String preciounidadextra, String cantidadminima, String primadominical, String tipojornada) {
        listCont = new ArrayList<>();
        listCont.add(new ActividadesModel(precio, preciounidadextra, cantidadminima, primadominical, codigo, tipojornada));
        //  new empleado();
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        //inflate menu
        inflater.inflate(R.menu.menu_main, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //handle menu item clicks
        int id = item.getItemId();

        if (id == R.id.action_settings) {
            //do your function here
            Toast.makeText(getActivity(), "Sincronizar", Toast.LENGTH_SHORT).show();
        }
        if (id == R.id.action_sort) {
            //do your function here
            Toast.makeText(getActivity(), "Buscar", Toast.LENGTH_SHORT).show();
        }
        if (id == R.id.action_hoy) {
            //do your function here
            Toast.makeText(getActivity(), "Hoy", Toast.LENGTH_SHORT).show();
        }
        if (id == R.id.action_anterior) {
            //do your function here
            Toast.makeText(getActivity(), "Ayer", Toast.LENGTH_SHORT).show();
        }

        return super.onOptionsItemSelected(item);
    }


    private static String PREF_NAME = "prefs";
    SharedPreferences sharedpreferences;
    public static final String mypreference = "mypref";
    private Context mContext;

    @Override
    public void onViewCreated(View v5, Bundle savedInstanceState) {
        //public void onClick(View v5) {
        FloatingActionButton btndialog = (FloatingActionButton) v5.findViewById(R.id.floatingActionButton);

        final String[] nivelItems = getResources().getStringArray(R.array.nivel);
        final int itemSelected = 0;

        try {
            btndialog.setOnClickListener(new View.OnClickListener() {
                //    JSONObject js = createJsonObjectInv();
                //    JSONArray arr = js.getJSONArray("data");
                //JSONArray arr3 = js.getJSONArray("data");
                //String[] list = new String[arr.length()];
                //String[] arr2 = arr.toString().replace("},{", " ,").split(" ");
                //@Override
                public void onClick(View v) {
                    try {
                        JSONObject js = createJsonObjectInv();
                        JSONArray arr = js.getJSONArray("data");
                        final String[] list = new String[arr.length()];
                        for (int i = 0; i <= arr.length() - 1; i++) {
                            JSONObject element = arr.getJSONObject(i);
                            String InvernaderoId = "\"invernaderoId\":\"" + element.getString("invernaderoId") + "\", ";
                            String Name = "\"name\":\"" + element.getString("name") + "\", ";
                            String Invernarder = "\"Invernarder\":\"" + element.getString("Invernarder") + "\"";

                            //list[i] = InvernaderoId + Name + Invernarder;
                            list[i] = Name.substring(8);
                        }
                        // final String[] empleados = {"Luis", "Daniel", "Juan", "Jose", "Cesar"};
                        // final String[] empleados = arr2;
                        new AlertDialog.Builder(getContext())
                                .setTitle("Selecciona el Invernadero")
                                //  .setSingleChoiceItems(empleados, itemSelected, new DialogInterface.OnClickListener() {
                                .setSingleChoiceItems(list, -1, new DialogInterface.OnClickListener() {
                                    @Override
                                    //  public void onClick(DialogInterface dialogInterface, int selectedIndex) {
                                    public void onClick(DialogInterface dialog, int position) {
                                        // String nombreselect = empleados[position];
                                        Toast.makeText(getContext(), "Position: " + position, Toast.LENGTH_SHORT).show();
                                        String empleadotext = list[position];
                                        //empleado.setText(empleadotext);

                                        // SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
                                        SharedPreferences sharedPrefs = getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
                                        SharedPreferences.Editor editor = sharedPrefs.edit();
                                        editor.putString("inver", empleadotext);
                                        editor.commit();

                                    }
                                })
                                //.setPositiveButton("Ok", null)
                                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        // continue with delete
                                        ShowMessage();
                                    }
                                })
                                .setNegativeButton("Cancel", null)
                                .show();

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private void ShowMessage() {
        final String[] actividades = {"act1", "act2", "act3", "act4", "act5"};
        final int itemSelected = 0;
        new AlertDialog.Builder(getContext())
                .setTitle("Selecciona la actividad")
                .setSingleChoiceItems(actividades, itemSelected, new DialogInterface.OnClickListener() {
                    @Override
                    //  public void onClick(DialogInterface dialogInterface, int selectedIndex) {
                    public void onClick(DialogInterface dialog, int position) {

                        // String nombreselect = empleados[position];
                        Toast.makeText(getContext(), "Position: " + position, Toast.LENGTH_SHORT).show();
                        String nombreselect = actividades[position];
                        SharedPreferences sharedPrefs = getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
                        SharedPreferences.Editor editor = sharedPrefs.edit();
                        editor.putString("actividad", nombreselect);
                        editor.commit();

                        //  empleado.setText(empleadotext);
                    }
                })
                // .setNeutralButton("OK", null)
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // continue with delete
                        /*   FragmentManager fm = getActivity().getSupportFragmentManager();
                        DialogFragment dialogs = new CapturaDialogAct(); // creating new object
                        dialogs.show(fm, "dialog");

                         */
                        FragmentManager fm = getActivity().getSupportFragmentManager();
                    /*    DialogFragment dialogs = new CapturaDialogAct(new CapturaDialogAct.OnSelectionListener() {
                            @Override
                            public void onConfirmed(String codigo, String precio, String preciounidadextra, String cantidadminima
                                    , String primadominical, String tipojornada) {

                                // Do whatever you want with the received text from the DialogFragment


                            }
                        });*/
                        DialogFragment dialogs = new CapturaDialogAct(new CapturaDialogAct.OnSelectionListener() {
                            @Override
                            public void onConfirmed(String codigo, String precio, String preciounidadextra, String cantidadminima
                                    , String primadominical, String tipojornada) {

                                // Do whatever you want with the received text from the DialogFragment
                            /*
                                AdapterAct viewAdapter = new AdapterAct(getContext(), listCont);
                                recyclerView.setAdapter(viewAdapter);

                             */
//                                RecyclerView recyclerView = getView().findViewById(R.id.idrecyclerviewCa);
                                //recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 1));
                                mViewAdapter.addItem(new ActividadesModel(codigo, precio, preciounidadextra, cantidadminima, primadominical, tipojornada));
                            }
                        });
                        dialogs.show(fm, "dialog");

                    }
                })
                .show();
    }


    public JSONObject createJsonObjectInv() throws JSONException {
        Cursor cursor = getAllDataInv();
        JSONObject jobj;
        JSONArray arr = new JSONArray();
        cursor.moveToFirst();
        while (cursor.moveToNext()) {
            jobj = new JSONObject();
            jobj.put("invernaderoId", cursor.getString(0));
            jobj.put("name", cursor.getString(1));
            jobj.put("Invernarder", cursor.getString(4));
            arr.put(jobj);
        }
        jobj = new JSONObject();
        jobj.put("data", arr);
        return jobj;
    }


    //Syncronizador de datos a servicio
    public Cursor getAllDataInv() {
        String selectQuery = "Select * from Invernadero";
        SQLiteDatabase db = new MyHelper(getActivity()).getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        //Cursor cursor = db.rawQuery("select * from capturas where syncstatus= ?", new String[] {"0"});
        return cursor;
    }


    @Override
    public void onClick(View v) {

    }
}

对于您的适配器,添加了一个名为 addItem 的新方法,该方法接受适配器中的新行并通知最后一项的更改。


public class AdapterAct extends RecyclerView.Adapter<AdapterAct.MyViewHolder> implements Filterable {

    private List<ActividadesModel> actividadesModelList;
    private Context context;
    private List<ActividadesModel> actividadesArrayList;
    private IAxiliarActividades iAxiliarActividades;
    List<ActividadesModel> contactList;
    // Este es nuestro constructor (puede variar según lo que queremos mostrar)
    private String[] mDataSet;
    private List<ActividadesModel> listCont;

    public AdapterAct(Context context, List<ActividadesModel> listCont) {
        this.context = context;
        this.contactList = listCont;
        this.listCont = listCont;
    }


    public AdapterAct(String[] myDataSet) {
        mDataSet = myDataSet;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        // return null;
        View v;
        v = LayoutInflater.from(context).inflate(R.layout.card_actividad, parent, false);
        return new MyViewHolder(v);
    }

    public void addItem(ActividadesModel item) {
        this.listCont.add(item);
        notifyItemChanged(listCont.size() - 1);
    }

    public static class MyViewHolder extends RecyclerView.ViewHolder {
        TextView name;
        TextView precio;

        public MyViewHolder(View itemView) {
            super(itemView);
            this.name = (TextView) itemView.findViewById(R.id.txtNombreMostrar);
            this.precio = (TextView) itemView.findViewById(R.id.txtPrecioMostrar);
        }
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {

        ActividadesModel actividadesModel = listCont.get(position);
        //Codigo para crear el listado de acitividades
//        holder.name.setText("nameprueba");
        holder.precio.setText(actividadesModel.getCodigo());
        holder.precio.setText(actividadesModel.getPrecio());
//        holder.precio.setText("precio23");

    }

    @Override
    public int getItemCount() {
        return listCont == null ? 0 : listCont.size();
    }

    @Override
    public Filter getFilter() {
        return null;
    }


}

【讨论】:

  • 嗨 Zain,它已经执行了所有步骤,它没有标记错误但它没有创建卡片视图,我会将适配器添加到帖子中,谢谢。
  • 嗨 MexiCano 请让我检查一下
  • 非常感谢 Zain
  • @MexiCano 给你
  • 嗨,进程:com.example.actividadesdivemex,PID:21010 java.lang.NullPointerException:尝试调用虚拟方法 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget. RecyclerView$Adapter)' 在 com.example.actividadesdivemex.works.CapturaDialogAct$1.onClick(CapturaDialogAct.java:84) 的 com.example.actividadesdivemex.works.empleado$2$1.onConfirmed(empleado.java:263) 的空对象引用上)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
相关资源
最近更新 更多