Android Actualiza ListActivity desde BaseAdapter

Tengo un ListActivity y un adaptador de encargo que extienda BaseAdapter.

En cada fila del ListView, hay un botón y unas cuantas vistas más. onClickListener se declara en el adaptador.

¿Cómo puedo actualizar la vista de lista después de hacer clic en el botón?

Aquí está el código

Actividad de la lista:

......... super.onCreate(savedInstanceState); here im reading content from a file and then creating adapter with that content adapter = new UvArrayAdapter(this, strarray3, strarray2, intarray); setListAdapter(adapter); .......... 

Adaptador:

 ....... public class UvArrayAdapter extends BaseAdapter { private Context mContext; private LayoutInflater linflater; private TextView txt_1, txt_2, txt_3; private ProgressBar pr1; private String[] str1; private String[] str2; private String[] str3; private Integer[] int1; private class OnItemClickListener implements OnClickListener{ private int mPosition; OnItemClickListener(int position){ mPosition = position; } @Override public void onClick(View arg0) { Log.v("TAG", "onItemClick at position" + mPosition); } } public UvArrayAdapter(Context context, String[] s1, String[] s2, Integer[] i1) { mContext = context; str1 = s1; str2 = s2; int1 = i1; linflater = LayoutInflater.from(context); } @Override public int getCount() { return str1.length; } @Override public Object getItem(int arg0) { return str1[arg0]; } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = linflater.inflate(R.layout.uv_rowlayout, null); } convertView.setOnClickListener(new OnItemClickListener(position)); txt_1 = (TextView) convertView.findViewById(R.id.textView1); pr1 = (ProgressBar) convertView.findViewById(R.id.progressBar1); pr1.setProgress(int1[position]); txt_1.setText(str1[position]); txt_2 = (TextView) convertView.findViewById(R.id.textView2); txt_2.setText(str2[position]+"mV"); Button btn = (Button) convertView.findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Log.v("onClickListener", "button - clicked at position " position); do some changes in mentioned file and after that i need to update the list view with new data }}); return convertView; } } 

 adapter.notifyDataSetChanged(); // to notify the adapter that your data has been updated 

Nota: Si obtienes algún error con la línea anterior, puedes probar el siguiente código (donde mListView es el nombre de mi objeto ListView)

 ((BaseAdapter) mListView.getAdapter()).notifyDataSetChanged(); 

Otra forma sería invalidar la lista para que se vuelva a dibujar del conjunto de datos actualizado una vez más.

 mListView=(ListView) findViewById(R.id.MyListView); mListView.invalidate(); 

Utilice notifyDataSetChanged()

 adapter = new UvArrayAdapter(this, strarray3, strarray2, intarray); setListAdapter(adapter); UvArrayAdapter.notifyDataSetChanged(); // To make the adapter aware of the changes 
  • Ronda de Android en una imagen de fondo de Presentaciones, sólo las esquinas superior o inferior
  • Retrasar la actividad de inicio del receptor en la pantalla apagada
  • ¿Cómo implementar la funcionalidad de la cámara con opciones adicionales (como Panorama)?
  • Suprimir potencial NullPointerException en Android Studio
  • Bloquear una llamada de red desde una aplicación Android de SDK
  • Crear una vista compuesta en Android
  • Valores-21, valores-22 o valores-xx carpeta se ha ido después de Android Studio 1.0
  • ¿Cómo obtener la vista de contenido actual en la programación de Android?
  • ¿El onClickListener no actualiza la interfaz de usuario hasta que todo el código dentro de él se haya ejecutado en Android?
  • Comparación de rendimiento y usabilidad de las bibliotecas Android JSON
  • Inicializar el objeto TextToSpeech en un subproceso de trabajo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.