java - 片段中的 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.
解决方案
"适配器名称" .notifyDataSetChanged(); 这项工作将在您的列表未加载的第一个片段上完成
推荐阅读
- postman - 邮递员:“从链接导入”不起作用
- reactjs - 如何在渲染组件时添加 google api 脚本?
- javascript - 将 Sails / Node.js 发布到 Kongregate
- unity3d - 为什么不能统一发布2018.2.15f1
- android - 可点击的滚动图片
- tinymce - TinyMce 4 在保存到数据库后清除我的代码标签
- ruby-on-rails - 在 html.erb 页面中显示预格式化的 HTML
- java - Spring Boot 2 Actuator /health端点在使用身份验证时不显示其他信息
- java - 何时/何地在 Google App Engine for Search API 中创建索引 - Java
- angular - 在 Angular 应用程序中显示来自 Postgres 的数据。CORS 问题