有人可以帮我通知datasetchanger无法刷新我的listview。
我希望每次关闭和第二次活动时都刷新我的列表视图。
以下是我现在使用的代码,只有在关闭listview refres的打开活动时才会使用。
public class Serie extends Activity {
private dbManager manager;
String [] margs;
ListView lstSeries;
String message;
SimpleCursorAdapter Adaptador;
Cursor Cursor_Serie;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_serie);
try{
manager = new dbManager(getBaseContext());
lstSeries = (ListView)findViewById(R.id.lstSeries);
//Variable para con los campos que se desean obtener para el spinner
String[] del = new String[]{"_id","vendedor","activador","cliente"};
//String[] del = new String[]{"_id","DESCR"};
//Variable para determinar el id de los controles a donde van a llenar.
int[]al=new int[]{R.id.txtNo_Telefono,R.id.txtVendedor, R.id.txtActivador,R.id.txtCliente};
//llama la funcion para llenar el grid view de resumen
Cursor_Serie = manager.Series_Promotores(getBaseContext(),Global.Parametro1, Global.Parametro2);
Adaptador =new SimpleCursorAdapter(this,R.layout.lyseries,Cursor_Serie,del,al,0);
//Devuelve un adapter con la informacion del producto
Adaptador.notifyDataSetChanged();
lstSeries.setAdapter(Adaptador);
lstSeries.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
try{
//Obtiene el cursor asignado a este listview
Cursor Cursor_Series = (Cursor) parent.getItemAtPosition(position);
//Llena las variables con los valores correspondientes
Global.Parametro1 = Cursor_Series.getString(Cursor_Series.getColumnIndexOrThrow("_id"));
Intent appInfo = new Intent(Serie.this, Ficha.class);
startActivity(appInfo);
}
catch (Exception e) {
message = e.getMessage();
Toast.makeText(getBaseContext(), message, Toast.LENGTH_LONG).show();
}
}
});
}
catch (Exception e) {
message = e.getMessage();
Toast.makeText(getBaseContext(), message, Toast.LENGTH_LONG).show();
}
}
@Override
public void onResume() {
super.onResume();
Adaptador.notifyDataSetChanged();
}
}
答案 0 :(得分:0)
SimpleCursorAdapter不会自动获取新数据。
最简单的解决方案是在onResume()
:
String[] del = new String[]{"_id","vendedor","activador","cliente"};
int[]al=new int[]{R.id.txtNo_Telefono,R.id.txtVendedor, R.id.txtActivador,R.id.txtCliente};
Cursor_Serie = manager.Series_Promotores(getBaseContext(),Global.Parametro1, Global.Parametro2);
Adaptador =new SimpleCursorAdapter(this,R.layout.lyseries,Cursor_Serie,del,al,0);
lstSeries.setAdapter(Adaptador);
您将创建一个新的Cursor
并重新读取数据,然后在新的SimpleCursorAdapter
中获取该数据,然后将其设置为ListView
并更新其代表。