ListView / ListAdapter mit 2 strings in Android Projekt

Arbeite ich an Android-Projekt. Ich tutorial von http://www.vogella.com/articles/AndroidSQLite/article.html aber ich blieb auf etwas. Tutorial zeigt, wie Klasse mit 1 String-Objekt. Ich arbeite mit 2 String-Objekte. Also änderte ich einige Dinge (hinzufügen neuer String in meine Klasse, layout ändern.simple_list_item_1 zu android.R.layout.simple_list_item_2 etc.) Und nun die Frage - wie um etwas zu Holen Stoliki class-Objekte (override toString() gibt mir nur 1 Punkt, so ist Es nutzlos).

Klasse Stoliki

public class Stoliki {
      private long id;
      private String numer;
      private String opis;

      public long getId() {
        return id;
      }

      public void setId(long id) {
        this.id = id;
      }

      public String getNumer() {
        return numer;
      }

      public void setNumer(String numer) {
        this.numer = numer;
      }

      public String getOpis() {
            return opis;
        }

      public void setOpis(String opis) {
            this.opis = opis;
        }

    } 

Aktivität

import android.app.ListActivity;
import android.os.Bundle;
import java.util.List;
import java.util.Random;
import android.view.View;
import android.widget.ArrayAdapter;

public class FirstGridPage extends ListActivity {
      private StolikiDataSource datasource;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_list_stoliki);

    datasource = new StolikiDataSource(this);
    datasource.open();

    List<Stoliki> values = datasource.getAllStoliki();

    //Use the SimpleCursorAdapter to show the
    //elements in a ListView
    ArrayAdapter<Stoliki> adapter = new ArrayAdapter<Stoliki>(this,
        android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
  }

  //Will be called via the onClick attribute
  //of the buttons in main.xml
  public void onClick(View view) {
    @SuppressWarnings("unchecked")
    ArrayAdapter<Stoliki> adapter = (ArrayAdapter<Stoliki>) getListAdapter();
    Stoliki stolik = null;
    switch (view.getId()) {
    case R.id.add:
      String[] stoliki_numer = new String[] { "1", "2", "3" };
      String[] stoliki_opis = new String[] { "Czerwony", "Niebieski", "Zielony" };
      int nextInt = new Random().nextInt(3);
      //Save the new comment to the database
      stolik = datasource.createStolik(stoliki_numer[nextInt], stoliki_opis[nextInt]);
      adapter.add(stolik);
      break;
    case R.id.delete:
      if (getListAdapter().getCount() > 0) {
          stolik = (Stoliki) getListAdapter().getItem(0);
        datasource.deleteStolik(stolik);
        adapter.remove(stolik);
      }
      break;
    }
    adapter.notifyDataSetChanged();
  }

  @Override
  protected void onResume() {
    datasource.open();
    super.onResume();
  }

  @Override
  protected void onPause() {
    datasource.close();
    super.onPause();
  }

} 
  • verwenden Sie eine benutzerdefinierte Liste-adapter
  • Nur ein Hinweis: die Verwendung von Englisch Variablennamen, immer. Es ist wirklich hässlich "setOpis" und selbst wenn es nur training-app, verwenden Sie englische Namen zu trainieren und zu gewöhnen.
  • Ja. Es ist hässlich, aber nur für uns (polnische Volkspartei). Auf jeden Fall bin ich immer noch Java zu lernen und es übersichtlicher für mich zu Lesen, code.
InformationsquelleAutor boski | 2013-04-10
Schreibe einen Kommentar