¿Cómo notificar a DataSetChange () del método onitemclick ()?
Tengo que cambiar los datos en la opinión de la lista después de hacer clic en cada artículo ¿Puede cualquier cuerpo por favor decirme cómo notificar el cambio después de que el artículo se haga clic en la vista de lista. No estoy usando el adaptador bajo. Estoy usando la ayuda modificada para requisitos particulares de Adapter.Any será altamente Apreciable. comprobar mi código. Estoy tratando de añadir el botón en que posición el usuario hace clic. ¿Es posible. Cuando intento haga clic en la posición Da fuerza close.following es mi código.
public class CamNe extends Activity implements OnItemClickListener,OnItemSelectedListener{ /** Called when the activity is first created. */ String[] items={"lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "morbi", "vel", "ligula", "vitae", "arcu", "aliquet", "mollis", "etiam", "vel", "erat", "placerat", "ante", "porttitor", "sodales", "pellentesque", "augue", "purus"}; int pos=0; ListView ls; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView ls=(ListView)findViewById(R.id.list); //ls1=(ListView)findViewById(R.id.list); ls.setAdapter(new adapter(getApplicationContext(), items)); ls.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub pos=arg2; setTitle("mil"); ListAdapter ad=ls.getAdapter(); ((ArrayAdapter) ad).notifyDataSetChanged(); } class adapter extends ArrayAdapter{ private Context context; public adapter(Context context,String[] items) { super(context,R.layout.row,items); this.context=context; // TODO Auto-generated constructor stub } public View getView(int position, View convertView, ViewGroup parent) { View row=convertView; ViewWrapper wrapper; Button but = null; if (row==null) { LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE); row=inflater.inflate(R.layout.row, null); wrapper=new ViewWrapper(row); row.setTag(wrapper); but=wrapper.getRatingBar(); but.setVisibility(4); if(position==pos){ but.setVisibility(0); } } else { wrapper=(ViewWrapper)row.getTag(); if(position==pos) but=wrapper.getRatingBar(); } wrapper.getLabel().setText(items[position]); if(position==pos){ but.setTag(new Integer(pos)); } return row; } } @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub setTitle("mil"); pos=arg2; ((BaseAdapter) ls.getAdapter()).notifyDataSetChanged(); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }
- Cómo obtener todos los elementos de un ArrayAdapter?
- Método de movimiento del enlace de texto bloquea listitem
- ¿Cómo puedo comprobar si mi ListView ha terminado de redibujar?
- Cómo establecer el foco en el último elemento en una vista de lista en android
- Slide ListView Item en Android como la aplicación iPhone Mail
- Cambiar el color de fondo del elemento listview actual en el método getView del adaptador
- Android problema de selección de lista de selección única?
- ¿Cómo puedo deshabilitar ListView overscrolling en Android 2.2?
- BaseAdapter que hace que ListView salga de orden cuando se desplaza
- ListView setOnItemClickListener no funciona agregando botón
- Añadiendo un listclient de onclick a listview (android)
- Cómo implementar Android Pull-to-Refresh
- Diálogo con vista de lista y mensaje
en su método onItemClick () como este
ListAdapter uradapteobjr=listview.getAdapter(); uradapterobj.notifyDataSetChanged();
use notifydatasetchanged();
Consulte este documento:
http://developer.android.com/reference/android/widget/BaseAdapter.html#notifyDataSetChanged%28%29
Usted llama a notifyDataSetChanged () en el adaptador que está utilizando. Hacer del adaptador un campo de la clase para que esté en el ámbito de aplicación en todos los métodos de clase. Entonces simplemente llámelo desde dentro de su controlador onItemClickedListener:
listView.setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // do stuff .... myAdapter.notifyDataSetChanged(); } });
final ListView listView = new ListView(this); // Create your listview listView.setAdapter(new BaseAdapter()); // Set your adapter listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { listView.getAdapter().notifyDataSetChanged(); } });