Doch noch ein Problem
.
Ich habe meine Funktion:
1public void refreshnow(){
2
3
4 try{
5 File chatfile = new File(Environment.getExternalStorageDirectory() + "XXXXXXXXX");
6
7 String line = "";
8
9 FileInputStream in = new FileInputStream(chatfile);
10
11 InputStreamReader input = new InputStreamReader(in);
12 BufferedReader buffreader = new BufferedReader(input);
13
14 while((line=buffreader.readLine()) != null){
15
16 String[] lineseperated = line.split(";");
17 setListAdapter(null);
18 String versendername = lineseperated[0];
19 String nachricht = lineseperated[1];
20 String zeit = lineseperated[2];
21
22 HashMap<String, Object> map = new HashMap<String, Object>();
23
24 map.put("versendername", versendername);
25 map.put("zeit", zeit);
26 map.put("nachricht", nachricht);
27
28
29
30
31
32 adapter = new SimpleAdapter(getActivity()
33 .getBaseContext(), chatlist, R.layout.chatitem,
34 new String[] { "versendername" , "zeit" , "nachricht"},
35 new int[] { R.id.chatname, R.id.time , R.id.nachri});
36 chatlist.add(map);
37
38
39
40
41
42 setListAdapter(adapter);
43
44
45
46
47 }
48
49 buffreader.close();
50
51
52
53 }catch(Exception e){
54 Log.e("Error in refresh", e.toString());
55 }
56
57
58
59}
Ich habe nun meinen ListAdapter global definiert.
Problem ist folgendes:
Die txt wird komplett ausgelesen und in den Adapter geschrieben bzw. an die Listview übergeben.
Nun passiert in der refreshnow() genau das selbe nochmal.
Nun kriege ich alle Einträge alle 5 Sekunden doppelt, dann dreifach, dan vierfach usw. aufgrund von:
1final Handler handler = new Handler();
2 handler.postDelayed( new Runnable() {
3
4 @Override
5 public void run() {
6
7 Log.i("tick", "tick");
8
9 refreshnow();
10
11
12 handler.postDelayed( this, 5000);
13
14 }
15 }, 5000 );
Demzufolge liegt es wahrscheinlich an der globalen Adapter Variable.
Wie clear() ich sowas?
Hiiiiilfee!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.