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.
- Archivo nunca descargado
- Descubrimiento del servicio de red error de tutorial android: Servicio perdido, el teléfono se desactiva
- Android findViewById en DialogFragment
- Error de Jenkins Execute: java.io.IOException ant build
- SimpleDateFormat.getTimeInstance ignora el formato de 24 horas
¿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; } }
- Problema de compilación en Android Studio con Google Play Services
- Enviar cadena C ++ a Java a través de JNI
- Aviary se estrella en Android L (5.0)
- Android-support-v4.jar no se importa correctamente en Eclipse
- Cómo restringir el tiempo de entrada para edittext en android
- Cómo mostrar / ocultar el teclado virtual sin animación (por ejemplo, fade) en Java?
- Refrescar las vistas de las preferencias cuando se utiliza PreferenceActivity
- Balanceo horizontal en stackview
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
- IntelliJ Idea Android Proyectos incluyendo archivos no-watned en apk
- Agregar color "# e3bb87" a StateListDrawable mediante programación