Refresh Activity

  • Antworten:4
Stefan S.
  • Forum-Beiträge: 560

22.06.2011, 07:29:02 via Website

Ich habe folgendes Problem:
Mein UI sieht folgendermassen aus
1<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:orientation="vertical"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 >
6 <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lvOrderLinear">
7 <TextView android:layout_width="wrap_content" android:text="Bestellungsübersicht" android:id="@+id/txtOrderTitle" android:layout_height="wrap_content" android:textStyle="bold"></TextView>
8 <View android:layout_width="fill_parent" android:id="@+id/separatorOrder" android:layout_height="10dip"></View>
9 </LinearLayout>
10 <ListView android:layout_height="wrap_content" android:layout_below="@+id/lvOrderLinear" android:layout_width="fill_parent" android:id="@+id/lvOrder" android:layout_marginTop="20dp" android:layout_marginBottom="60dp"></ListView>
11 <LinearLayout android:layout_width="fill_parent" android:layout_above="@+id/btnOrder" android:layout_height="wrap_content" android:id="@+id/lvOrderLinearTotal" android:orientation="horizontal" android:layout_alignParentBottom="true">
12 <TextView android:layout_width="fill_parent" android:layout_weight="1" android:text="Total" android:id="@+id/txtOrderTitleTotal" android:layout_height="wrap_content" android:textStyle="bold"></TextView>
13 <TextView android:layout_width="fill_parent" android:layout_weight="1" android:text="abc" android:id="@+id/txtOrderTitleTotalPreis" android:layout_height="wrap_content" android:textStyle="bold"></TextView>
14 <ImageButton android:layout_width="wrap_content" android:src="@drawable/basket_go" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:id="@+id/btnOrder" android:text="Bestellen"></ImageButton>
15 </LinearLayout>
16
17</RelativeLayout>

Um die ListView abzufüllen habe ich ein Custom Adapter gebaut. Klickt man auf die ImageButtons, wird die Menge incrementiert oder gelöscht. Dies funktioniert auch perfekt mit Cursor.requery() nach der Modifikation.
Mein Problem ist die TextView, welche das Total berechnet. Beim Starten der Activity steht auch das richtige Total drin. Wenn ich eben nun die ImageButtons drücke und im CustomAdapter die neuen Werte reinschreibe wird das Total nicht neu berechnet, da ich keinen Zugriff auf die TextView habe.

Gibt es eine Möglichkeit der Actitiy zu sagen, dass sie sich neu aufbauen soll?

Antworten
Daniel online
  • Forum-Beiträge: 282

24.06.2011, 09:23:36 via Website

Es ist schwer deinen Code zu lesen da er nicht schön formatiert wird, ich glaube aber das es schon gehen müsste.
Du hast doch dem TextView eine Id zugewiesen.
1TextView text = (TextView)FindViewById(R.id.textViewId);
2text.setText("blabla");

ungetetestet, sollte aber funktionieren.

Antworten
Stefan S.
  • Forum-Beiträge: 560

24.06.2011, 09:33:56 via Website

Beim Initialisieren der Activity geht das auch prima.
Mein Problem ist aber, dass ich Änderungen im Custom-SimplecursorAdapter mache und dort habe ich keinen Zugriff auf die "Main"-Activity.
D.h. ich habe einen Add-Button, welcher die Menge rausetzt. Danach müsste das Total neu berechnet werden. Dies kann ich prima im Adapter machen. Aber das Total müsste nun in der Main-Acittity nachgeführt werden.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

24.06.2011, 09:56:09 via Website

solche berechnungen haben eigentlich da nichts im adapter zu suchen. der adapter ist dafür da, um die listeneinträge zu verwalten.


du solltest nachdem du die daten deines adapters geändert hast, von außen ( sprich von deiner activity ) die neuberechnung anstarten und da kannst du schön die GUI updaten.

swordiApps Blog - Website

Antworten
Stefan S.
  • Forum-Beiträge: 560

24.06.2011, 09:59:00 via Website

Markus Gursch
solche berechnungen haben eigentlich da nichts im adapter zu suchen. der adapter ist dafür da, um die listeneinträge zu verwalten.


du solltest nachdem du die daten deines adapters geändert hast, von außen ( sprich von deiner activity ) die neuberechnung anstarten und da kannst du schön die GUI updaten.

Das ist eigentlich genau das was ich möchte.
Im Adapter habe ich auf zwei ImageButtons den onClick.Event registriert, welcher ja im Scope des Adapters durchgeführt wird. (falls es irgendwie möglich wäre, dies in die Actiity zu verlegen bin ich sofort am Umbauen).
Wie kann ich denn das GUI-Update erzwingen?

Antworten