Wie kann ich das ausgewählte Element mit ImageAdapter aus einer Rasteransicht abrufen? (Android)

Ich hatte eine ListView verwendet, um einige aus der Datenbank abgerufene Daten (String) anzuzeigen ... ganz einfach, aber einer meiner Mitarbeiter entschied sich, ein Bild vor den Text auf dem Bildschirm zu setzen. Mit Listview war dies nicht möglich, aber wir haben ein Beispiel mit GridView gefunden, das genau so aussah, wie wir es brauchten. Dann haben wir einige Zeit mit GridView verbracht und das Bild in den Vordergrund des Texts gestellt.

Leider wissen wir jetzt nicht, wie wir den ausgewählten Artikel erhalten sollen (basierend auf dem Text, der von dem ausgewählten Artikel stammt).

Ich verwende OnItemClickListener und in onItemClick die Methode gridView.getItemSelectedAtPosition (), aber alles, was ich erhalte, ist "null".

Ich weiß jetzt nicht, ob ImageAdapter etwas damit zu tun hat, denn wenn ich es in einen ArrayAdapter ändere, kann ich das richtige Element richtig finden, aber auf diese Weise befindet sich kein Bild in der Zeile.

gridview.setOnItemClickListener(new OnItemClickListener() {  
   public void onItemClick(AdapterView<?> parent, View v, int position, long id{     String selectedItem = (String) (gridView.getItemAtPosicion(position)); //always null     } });

was kann ich machen?

EDITED - ListView-Quelle

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ImageAdapter extends BaseAdapter {
private Context context;
private final String[] mobileValues;
private final String[] mobileValuesD;

public ImageAdapter(Context context, String[] mobileValues, String[] mobileValuesD) {
this.context = context;
this.mobileValues = mobileValues;
this.mobileValuesD = mobileValuesD;
}

  public View getView(int position, View convertView, ViewGroup parent) { 
  LayoutInflater inflater = (LayoutInflater) context.getSystemService           (Context.LAYOUT_INFLATER_SERVICE);
  View gridView;

  if (convertView == null) {

  gridView = new View(context);

   // get layout from mobile.xml
    gridView = inflater.inflate(R.layout.pesquisa_2, null);

  // set value into textview
    TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label);
     textView.setText(mobileValues[position]+"\n"+mobileValuesD[position]);

 // set image based on selected text
  ImageView imageView = (ImageView) gridView.findViewById(R.id.grid_item_image);

  String mobile = mobileValues[position];

 //SELECT DAS IMAGENS

  if (mobile.equals("pdt1")) {
     imageView.setImageResource(R.drawable.img1);
  } else if (mobile.equals("prd2")) {
      imageView.setImageResource(R.drawable.feijao);
   } else {
       imageView.setImageResource(R.drawable.acucar);
    }


   } else {
    gridView = (View) convertView;
   }

    return gridView;
 }

   public int getCount() {
        return mobileValues.length;
 }

  public Object getItem(int position) {
      return null;
 }

   public long getItemId(int position) {
      return 0;
 }

 }

Antworten auf die Frage(1)

Ihre Antwort auf die Frage