Wie kann ich Icons für Menüpunkte in Android ListView erstellen?

Ich verwende ein ListView, um den Hauptbildschirm meiner Bewerbung zu präsentieren. Der Hauptbildschirm ist im Wesentlichen ein Menü, um in die verschiedenen Abschnitte meiner Anwendung zu gelangen. Derzeit habe ich den ListView-Content programmgesteuert in der onCreate-Methode.

Hier ist das Code-Snippet, das das tut:

String[] mainItems = { "Inbox", "Projects", "Contexts", "Next Actions" } @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); setListAdapter(new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, mainItems)); registerForContextMenu(getListView()); } 

So ist das Menü im Grunde nur ein paar Knoten mit dem im mainItems-Array enthaltenen Text. Ich weiß, dass ich ein XML-Layout (dh R.layout.mainMenu_item ) erstellen kann, das ein ImageView und TextView hat, aber ich bin mir nicht sicher, wie man das ImageView-Icon setzt. Ich habe gesehen, dass es eine setImageResouce (int resId) -Methode gibt, aber der Weg, dies zu verwenden, wenn du mit einem ArrayAdapter entsteht, entgeht mir. Gibt es einen besseren Weg, dies zu tun?

  • Android Menü aus einer Taste öffnen
  • Android Change Navigation Schublade Menü Items Text programmatisch
  • So fügen Sie ein unteres Menü zu Android-Aktivität hinzu
  • Wie bekomme ich Icons aus einem ActionBarSherlock Überlaufmenü auf Android 2.3?
  • Verwenden von onPrepareOptionsMenu anstelle von onCreateOptionsMenu in Fragment
  • Anruf-Methode, wenn Home-Taste auf Android gedrückt
  • Android: Get View Verweis auf ein Menüpunkt
  • Der überprüfte Zustand von MenuItem wird nicht korrekt mit dem Symbol angezeigt
  • 2 Solutions collect form web for “Wie kann ich Icons für Menüpunkte in Android ListView erstellen?”

    Was ich normalerweise für eine ListView tue, ist, meinen eigenen Adapter zu implementieren, indem du die handliche BaseAdapter-Klasse erweitere. Eine der abstrakten Methoden, die du implementierst, wird getView () wie das vorherige Poster erwähnt. Von dort aus können Sie ein Layout mit einem ImageView aufblasen, erhalten Sie einen Verweis darauf mit findViewById, und legen Sie das Bild auf, was zeichnend Sie in Ihre Ressourcen hinzugefügt haben.

     public View getView(int position, View convertView, ViewGroup parent) { View row = inflater.inflate(R.layout.menu_row, null); ImageView icon = (ImageView) row.findViewById(R.id.icon); icon.setImageResource(..your drawable's id...); return view; } 

    Von den Google Docs für ArrayAdapter.

    Um etwas anderes als TextViews für die Array-Anzeige zu verwenden, z. B. ImageViews, oder um einige von Daten neben toString () Ergebnisse zu füllen die Ansichten, überschreiben getView (int, View, ViewGroup), um die Art der Ansicht, die Sie wollen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.