首页 > 解决方案 > 片段中的 onActivityResult 不会更新 ListView

问题描述

我有 2 个片段,第一个是所选项目的列表,第二个是我选择项目的位置。在第一个片段的 onActivityResult 事件中,我获得了从第二个片段发送的信息,我将信息添加到对象(列表),并将作为数据源分配给我的列表视图,但不显示此信息:

我的应用程序的安全性

///////FRAGMENT 1:////
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        tbllistadoproducto objproducto= new tbllistadoproducto();
        if (resultCode == 1) {
            //if (requestCode==AppConstant.FRAGMENT_CODE){
            //String datafromC = data.getStringExtra("datafrom C");
            String dataS= data.getStringExtra("PRODUCTO");
            try{
                JSONObject jsonObject = new JSONObject(dataS);

                objproducto.setCodf(jsonObject.getString("Codf"));
                objproducto.setCodi(jsonObject.getString("Codi"));
                objproducto.setMarca(jsonObject.getString("Marca"));
                objproducto.setDescripcion(jsonObject.getString("Descripcion"));
                objproducto.setUMedida(jsonObject.getString("UMedida"));
                objproducto.setStock(Integer.parseInt(jsonObject.getString("Stock")));
                objproducto.setPrecio(Double.parseDouble(jsonObject.getString("Precio")));
                objproducto.setMoneda(jsonObject.getString("Moneda"));

                _lstProductos.add(objproducto);
                adapter_listaproducto adaptador= new adapter_listaproducto(getActivity(),_lstProductos);
                lvwProductos.setAdapter(adaptador);
                //don't DISPLAY THE ITEMS


                //txtTotal.setText("ERRROR");
            }
            catch (Exception ex)
            {
                Toast.makeText(getActivity(),ex.getMessage(),Toast.LENGTH_LONG).show();
            }
            finally {
                super.onActivityResult(requestCode, resultCode, data);
            }



            //}
        }

    }

////////////FRAGMENT2 : Code of my Second Fragment to select:///////////////

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View vista = inflater.inflate(R.layout.fragment_listadoproductospedidos, container, false);
        lvwProductos=vista.findViewById(R.id.listadoproductopedido_lvwproductos);
        btnBuscar=vista.findViewById(R.id.listadoproductopedido_imgbtnbuscar);
        txtTexto=vista.findViewById(R.id.listadoproductopedido_txttexto);

        lvwProductos.setClickable(true);
        btnBuscar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CargarProductos();
            }
        });

        lvwProductos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                tbllistadoproducto objProducto= (tbllistadoproducto)lvwProductos.getItemAtPosition(position);
                Gson gson = new Gson();
                String jsonProducto = gson.toJson(objProducto);
                getTargetFragment().onActivityResult(
                        getTargetRequestCode(),
                        1,
                        new Intent().putExtra("PRODUCTO", jsonProducto)
                );
                getFragmentManager().popBackStack();
            }
        });
        return vista;
    }
I hope to show the items in my listview, but don't show.



标签: javaandroid

解决方案


"适配器名称" .notifyDataSetChanged(); 这项工作将在您的列表未加载的第一个片段上完成


推荐阅读