Verständnisfrage zu CourserAdapter and Zugriff auf Datenbank

  • 2 Antworten
  • Neuester Beitrag
Diskutiere Verständnisfrage zu CourserAdapter and Zugriff auf Datenbank im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

Mits

Neues Mitglied
Hallo Leute!

Ich hab hier mal eine Verständnisfrage!

Ich gebe über einen Curser Adapter eine View aus!

Jetzt möchte ich zu dieser View noch einzelne Spalten aus einer Datenbank hinzufügen!

Nur weiß ich nicht genau wo ich den Aufruf für die Datenbank machen muß!

Wo muß ich diese Zeile einfügen, damit ich in Nachstehendem Code auf die Datenbank zugreifen kann!
database = new ExampleDatabase(this, null);
Cursor customer = database.getCustomerById(customerId);

Anbei poste ich mal den Code:
Bin für jeden Tip Dankar!


Code:
public class OrderAdapter extends CursorAdapter {
    //application = (ExampleApplication) getApplication();
            //ExampleDatabase db = new ExampleDatabase(this, null);
    
    private int idIndex;
    private int customerIndex;
    private int timeIndex;
    private int vkpriceIndex;
    private int orderTimeIndex;
    private int orderSendIndex;
    
    @SuppressWarnings("deprecation")
    public OrderAdapter(Context context, Cursor c) {
        super(context, c);
        
        idIndex = c.getColumnIndex(Order.KEY_ID);
        customerIndex = c.getColumnIndex(Order.KEY_CUSTOMER_ID);
        timeIndex = c.getColumnIndex(Order.KEY_DELIVERY_TIME);
        vkpriceIndex = c.getColumnIndex(Order.KEY_TOTAL_PRICE);
        orderTimeIndex= c.getColumnIndex(Order.KEY_ORDER_TIME);
        orderSendIndex= c.getColumnIndex(Order.KEY_TIME_SENT);
    }
    
    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        setViewInfos(view, cursor);
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.order_list_item, null);

        return setViewInfos(itemView, cursor);
        
    }
    
    @SuppressWarnings("deprecation")
    private View setViewInfos(View itemView, Cursor cursor) {
      
        
        TextView id = (TextView) itemView.findViewById(R.id.order_id);
        id.setText(Integer.toString(cursor.getInt(idIndex)));
        
        TextView customer= (TextView) itemView.findViewById(R.id.order_customer);
        customer.setText(cursor.getString(customerIndex));
        
               TextView time = (TextView) itemView.findViewById(R.id.order_date);
        time.setText(Utils.toShortDate(new Date(cursor.getLong(timeIndex))));

        TextView orderTime = (TextView) itemView.findViewById(R.id.order_time);
        orderTime.setText(Utils.toShortDate(new Date(cursor.getLong(orderTimeIndex))));
        
        TextView totalprice = (TextView) itemView.findViewById(R.id.order_totalprice);
        totalprice.setText(Integer.toString(cursor.getInt(vkpriceIndex)));
        
        TextView orderSend = (TextView) itemView.findViewById(R.id.order_send);
        orderSend.setText(Utils.toShortDate(new Date(cursor.getLong(orderSendIndex))));
    
        return itemView;
    }
Vielen Dank im voraus!

lg
Jörg
 
derjens

derjens

Ambitioniertes Mitglied
Hallo Jörg

Den Cursor den du an den CursorAdapter übergibst erzeugst du ja in deiner (List)View die du füllen willst.
Also müsstest du dort auch deine SQL abfrage haben in der du die Spalten festlegst die du haben willst.

Gruß
Jens
 
M

Mits

Neues Mitglied
Hallo Jens!

Vielen Dank das war genau die Info die mir gefehlt hat,
oft sieht man wirklich den Wald vor lauter Bäumen nicht mehr!

Danke!

lg
Jörg