(Resuelto) Android- Seleccionar un elemento de un GridView de forma programática?

Quiero realizar un clic en un elemento después del método setAdapter() .

Considere si ha declarado e inicializado un botón en su actividad a nivel mundial, entonces puede realizar un clic en él de forma programática desde cualquier ámbito de esa actividad y el oyente funcionará. Quiero algo similar como eso, para poder realizar un clic en cualquier artículo de mi GridView .

Hasta ahora he probado todos los siguientes métodos uno por uno, pero ninguno de ellos parece funcionar, he intentado diferentes preguntas de la pila, pero ni siquiera una sola respuesta funcionó para mí. iconsGrid.setSelection(2); , iconsGrid.setSelected(true); , iconsGrid.performClick(); , iconsGrid.performItemClick(iconsGrid, 2, 2); , iconsGrid.performItemClick(iconsGrid, 2, iconsGrid.getItemIdAtPosition(2)); ,

 //Activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.txt); Integer[] resource_icons = { R.drawable.ic_attachment, R.drawable.ic_attachment, R.drawable.ic_attachment, R.drawable.ic_attachment, R.drawable.ic_attachment, R.drawable.ic_attachment }; GridView iconsGrid = (GridView) findViewById(R.id.gv_icons); IconGridAdapter iconAdapter = new IconGridAdapter(this, resource_icons); iconsGrid.setAdapter(iconAdapter); /* * I want to perform a click here */ } //Adapter @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater li; View grid; if (convertView == null) { grid = new View(mContext); li = ((Activity) mContext).getLayoutInflater(); grid = li.inflate(R.layout.grid_cell_imageview, parent, false); } else { grid = (View) convertView; } ImageView imageView = (ImageView) grid.findViewById(R.id.image); imageView.setImageResource(imageId[position]); return grid; } 

OK, hagamos esto

declare un campo en su adaptador decir

 private int selectedPosition=-1; 

ahora crear un setter para esto

 private void setSelectedPosition(int position) { selectedPosition=position; } 

Ahora en su método getView

 if(position==selectedPosition) { grid.setSelected(true); //OR grid.setBackgroundColor(<Some Color>); } 

Ahora, después de ajustar el adaptador

 adapter.setSelectedPosition(<your desired selected item position>); adapter.notifyDataSetChanged(); 

En el archivo xml dentro de GridView simplemente agregue android:listSelector="@drawable/your_selector" después de agregar esta línea si codifica como –

 gridView.setSelection(POSITION); //position starts from 0 

Destacará ese elemento en particular.

y para realizar el uso del clic –

 gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { //do whatever you want to do } }); 
  • Gridview - Haga clic en la imagen para ver la imagen en Viewpager
  • Cómo obtener vídeo especificado de sdcard en android?
  • Cómo establecer un ancho de columna de un gridview en android?
  • Bloqueo de scroll de gridview
  • Realizar onClickListener en ImageView en GridView
  • ¿Cómo tomar una captura de pantalla de gridview incluyendo todos los elementos de la cuadrícula?
  • Android GridView última columna que se corta
  • Imagen de Android parpadeando en la imagen en recyclerview
  • Cómo hacer que SlidingDrawer sea transparente
  • Estoy recibiendo este error.DraggableGridView no instanciar
  • ImageView ScaleType ignora el relleno
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.