¿Cómo aplicar diferentes iconos y texto diferente en el tutorial de vista de cuadrícula de Android?

Por favor, díganme cómo cambiar o aplicar iconos diferentes con texto diferente en el tutorial de vista de cuadrícula de Android. Mi código es

public class Home extends Activity { //---the images to display--- Integer[] imageIDs = { }; GridView grid_main; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); grid_main = (GridView) findViewById(R.id.gridview); grid_main.setAdapter(new ImageAdapter(this)); grid_main.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(getBaseContext(), "pic" + (position + 1) + " selected", Toast.LENGTH_SHORT).show(); } }); } public class ImageAdapter extends BaseAdapter { Context mContext; public static final int ACTIVITY_CREATE = 10; public ImageAdapter(Context c) { mContext = c; } //---returns the number of images--- public int getCount() { return 12; } //---returns the ID of an item--- public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } //---returns an ImageView view--- public View getView(int position, View convertView, ViewGroup parent) { View v; if(convertView==null){ LayoutInflater li = getLayoutInflater(); v = li.inflate(R.layout.grid_item, null); TextView tv = (TextView)v.findViewById(R.id.icon_text1); tv.setText("Profile "+position); ImageView iv = (ImageView)v.findViewById(R.id.icon_image1); iv.setImageResource(R.drawable.bo_1); } else { v = convertView; } return v; } } } 

Este código se está ejecutando perfectamente pero todas las imágenes nd texto son iguales así que necesito cambiarlo. Por favor, dime cómo hacerlo ? ¡¡Cualquier ayuda sería apreciada!!

Mucho, mucho, mucho mejor para ImageAdapter es:

 public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } // create a new ImageView for each item referenced by the Adapter public View getView(int position, View convertView, ViewGroup parent) { View v; if (convertView == null) { // if it's not recycled, initialize some attributes LayoutInflater li = getLayoutInflater(); v = li.inflate(R.layout.grid_item, null); TextView tv = (TextView)v.findViewById(R.id.icon_text); tv.setText(mTextsIds[position]); ImageView iv = (ImageView)v.findViewById(R.id.icon_image); iv.setImageResource(mThumbIds[position]); } else { v = (View) convertView; } return v; } // references to our images private Integer[] mThumbIds = { R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4 }; // references to our texts private String[] mTextsIds = { "Text 1", "Text 2", "Text 3", "Text 4" }; } 

Por favor, tenga en cuenta que las imágenes y los textos están en variables mThumbIds y mTextsIds

El grid_item.xml es:

 <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widget44" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_x="201px" android:layout_y="165px" android:gravity="center_horizontal" > <ImageView android:id="@+id/icon_image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/icon_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:gravity="center_horizontal" android:textColorHighlight="#656565" /> </LinearLayout> 

Las dos líneas más importantes son estas cuatro:

 TextView tv = (TextView)v.findViewById(R.id.icon_text1); tv.setText("Profile "+position); ImageView iv = (ImageView)v.findViewById(R.id.icon_image1); if (position == 0) { iv.setImageResource(R.drawable.bo_1); } else if (position == 1) { iv.setImageResource(R.drawable.bo_2); } 

En la primera línea se obtiene el TextView del archivo XMLlayout. Posteriormente, se establece el texto de este TextView en "Perfil" y un número. En la tercera línea, la inicialización del ImageView. Después de que usted está utilizando la imagen llamada bo1 en ese ImageView. Así que todo lo que tienes que hacer es agregar otro texto en la segunda línea y cambiar la imagen que te estás refiriendo en la cuarta línea.

Intente utilizar el siguiente código

 public View getView(int position, View convertView, ViewGroup parent) { View v; ImageView iv = null; TextView tv = null; if(convertView==null){ LayoutInflater li = getLayoutInflater(); v = li.inflate(R.layout.grid_item, null); tv = (TextView)v.findViewById(R.id.icon_text1); tv.setText("Profile "+position); iv = (ImageView)v.findViewById(R.id.icon_image1); } else { v = convertView; } iv.setImageResource(imageIDs[position]); return v; } 

Gracias Deepak

  • Cómo agregar el botón de texto a la barra de acción
  • Desplazamiento horizontal del texto en Android
  • Cómo agrandar el elemento central en un listview - android?
  • Cómo actualizar el texto de dibujo de lienzo en lugar de volver a dibujar el lienzo
  • Android interceptar la pasta \ copy \ cut en editText
  • ¿Es posible para TextView Marquee en un Widget que extiende AppWidgetProvider?
  • Uso de estilos de fuente predeterminados en Android
  • QPushButton ha duplicado texto después de la actualización Qt
  • Justificar texto de android dentro de un listview sin usar un WebView
  • Visualizando letras de MP3 song en Android
  • Android: cambia el color de la fuente al hacer clic
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.