2017-05-15 2 views
2

Ich versuche, das ausgewählte Element aus Rasteransicht in Android-Entwicklung zu bekommen. Hier ist die Liste der ziehbar ich verwendet, um die Rasteransicht bevölkern:Android Grid-Ansicht auf Klick-Listener erhalten ausgewählten Artikel

private static Integer[] iconlist = { 
     R.drawable.food_icon, R.drawable.transport_icon, R.drawable.entertainment_icon, 
     R.drawable.bill_icon, R.drawable.others_icon, R.drawable.salary_icon, 
     R.drawable.investment_icon, R.drawable.bonus_icon, R.drawable.medication_icon, 
     R.drawable.drinks_icon, R.drawable.car_icon, R.drawable.mask_icon, 
     R.drawable.shopping_icon, R.drawable.lottery_icon, R.drawable.pet_icon, 
     R.drawable.movie_icon, R.drawable.plant_icon, R.drawable.paint_icon, 
}; 

Und gridview auf Klick Zuhörer:

grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, 
           View v, int position, long id) { 

      Toast.makeText(getActivity(), "Grid Item " + (position + 1) + " Selected", Toast.LENGTH_LONG).show(); 
      int selected = position + 1; 
      for(int i = 0; i < iconlist.length; i++){ 
       if(iconlist[i] == selected){ 

       } 
      } 
     } 
    }); 

ich es geschafft, die richtige ganzzahlige Position auf der Klicks auf Basis zu erhalten. Was ich versuche, basiert auf dem ausgewählten Zeichensatz, ich versuche, die Zeichenfolge zu extrahieren.

Zum Beispiel, wenn Transport Symbol angeklickt wird, versuche ich, die "transport_icon" Zeichenfolge von "R.drawable.transport_icon" zu erhalten und speichern Sie es als Zeichenfolge. Ich bin mir jedoch nicht sicher, wie es geht.

Irgendwelche Ideen?

+0

do u dieses "" R.drawable.transport_icon "gespeichert werden soll" als String? –

+0

Nein, nein, ich versuche das "transport_icon" nur als String zu speichern. – hyperfkcb

+0

Entfernen Sie zunächst die Position + 1, um die ausgewählten Objekte zu erhalten. Weil iconList auch von 0 aus beginnt. –

Antwort

0

zuerst eine ziehbar von Integer-Array definieren (Ide)

Drawable drawable = context.getResources().getDrawable(iconlist[n]); 

und Sie können Namen von Ressourcen wie dieser

String name = context.getResources().getResourceEntryName(ID); 

diese Methode bekommen sollte zurückgeben, was Sie brauchen.

+0

getDrawable benötigt API 21, aber mein derzeitiges Minimum ist 16. Alle Alternativen? Wie analysiere ich das Drawable in int, um die Zeichenfolge zu extrahieren? – hyperfkcb

+0

add getResources() –

+0

String name = context.getResources(). GetResourceEntryName (ID); dieses schrieb ich im Antworttest und du erhältst den Namen des zeichnbaren >>> Textes nach R.drawable.TEXT –

Verwandte Themen