Zugriff auf Instanz in Listview

  • Antworten:15
  • Bentwortet
JulK
  • Forum-Beiträge: 52

19.08.2014, 21:55:12 via Website

Hallo liebe Community,

in meinem Projekt befindet sich ein listview und in jedem item lege ich eine Instanz meiner TimerTask Klasse an.
Mittels button click beginnt dieser zu zählen. Funktioniert auch alles ohne Probleme.

Mein Problem ist aber, dass ich nicht genau weis, wie ich den timer an einer bestimmten Position über die activity starten soll.

Sprich, wie kann ich auf eine Instanz in getView über eine activity zugreifen?

Hoffe Ihr könnt mir weiterhelfen.

LG Julian

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.08.2014, 22:17:11 via Website

Ein bisschen Code wäre hilfreicht.
Wie speicherst du den Timer?
Doch nicht im View selber?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
JulK
  • Forum-Beiträge: 52

19.08.2014, 22:26:36 via Website

Wie meinst du speichern? Ich instanziere den Timer in der getView Methode und auf diese variable müsste ich jetzt zugreifen.
LG

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.08.2014, 22:31:24 via Website

Dann poste doch mal diese Methode

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
JulK
  • Forum-Beiträge: 52

19.08.2014, 22:34:56 via Website

Versteh nicht genau für was. In der getView von meinem ListAdapter.

Nur wie kann ich nun darauf zugreifen?
Würde mir ein Objekt vom listItem weiterhelfen?
listView.getItem(index) ?

— geändert am 19.08.2014, 22:46:49

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.08.2014, 22:47:09 via App

Was ist daran schwierig zu verstehen.
Vlt die Methode von der du redest.

Und das ist die getView deines Listadapters..

Edit weiss ich doch nicht ohne deine Methode zu kennen.
Besitze keine Glaskugel...

— geändert am 19.08.2014, 22:48:00

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
JulK
  • Forum-Beiträge: 52

19.08.2014, 22:50:14 via Website

Ich frage mich nur was code zu dieser theoretischen Frage bringen würde. Aber kann ich dir gerne morgen posten.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.08.2014, 22:52:36 via App

Ja ich muss doch wissen wie du den TimerTask in der ListView speicherst.
Allein instanzieren reicht nicht.
Man muss das ja irgendwo in eine Variable oder ins list item schreiben damit man später die timer instanz wieder lesen und damit weiterarbeiten kann.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
JulK
  • Forum-Beiträge: 52

20.08.2014, 10:12:51 via Website

Nachdem ich erst am abend meinen laptop wieder hab, mach ichs mal so, sollte dir reichen zum Verständnis ;-)

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;

 ...

 MytimerClass mTimer = new MyTimerClass (arg0);
 mTimer.start();

 ...

}
Lg

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.08.2014, 10:38:10 via Website

Also wenn das der komplette Code ist, kannst du überhaupt nicht drauf zugreifen, da die Instanz des Timers nirgendwo gespeichert wird.
Du musst eine Möglichkeit finden, die Timerinstanz zu spechern, reichen würde da schon ein Array und dann machst du:

MytimerClass[] timers = new MytimerClass[anzahlElemente];
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;

...

MytimerClass mTimer = new MyTimerClass (arg0);
mTimer.start();
timers[position] = mTimer;

...

}

Wenn du jetzt wieder auf den Timer zugreifen willst, muss du die richtige position wissen und dann kannst du wieder auf den Timer zugreifen:

MytimerClass  timerPos1 = timers[1];

Das mit dem Array ist nur ein Vorschlag, geht sicher auch noch anders..
Mir ist nur nichts besseres gerade eingefallen.

LG Pascal //It's not a bug, it's a feature. :) ;)

JulK

Antworten
JulK
  • Forum-Beiträge: 52

20.08.2014, 10:49:21 via Website

Top !! Ist ne super Idee, hätte ich selber auch darauf kommen können :/ Danke Pascal:-)
LG

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

20.08.2014, 11:00:51 via App

Julian K

Ich frage mich nur was code zu dieser theoretischen Frage bringen würde. Aber kann ich dir gerne morgen posten.

Jetzt weißt du hoffentlich warum Pascal gefragt hat?!

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.08.2014, 11:01:43 via Website

Kein Problem, das ist mir halt sofort eingefallen, da hab ich gedacht, das dass dir helfen könnte!
PS: Thread auf beantwortet setzten

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
JulK
  • Forum-Beiträge: 52

20.08.2014, 11:03:10 via Website

Hätte es genau so beschrieben, aber ja. In Zukunft immer mit einem Stückchen code :-)

Antworten
Georg C.
  • Forum-Beiträge: 235

20.08.2014, 11:33:31 via Website

Nur an Rande!

@Pascal P.
es (je nach Logik & Bedarf) kann schon vorkommen, ... wird sogar oft davon .... gebrauch gemacht ... dass ERST! nach Ausführung einer Methode eine Klase ... Objekt instanziert wird.
Dem Programmierer ist! -> soll das bewusst sein.

LG
Georg

Sorry für Gramatik & Stilistik Fehler.

Antworten
JulK
  • Forum-Beiträge: 52

20.08.2014, 11:54:48 via Website

In diesem Fall ist es aber vernünftiger in der getView Methode, da sich text views etc viel leichte ansteuern lassen, oder?

Antworten