| 

.NET C# Java Javascript Exception

2
Hallo zusammen,
wenn ich die ArrayList,Hashmap per Hand fülle, funktioniert das.
Wenn ich die Hashmap aber per ReadFile einer Textdatei fülle, bekomme ich keine Anzeige.
Wie bringe ich die Arraylist zur Anzeige ? Kann mir jemand helfen.
Oder wie muss die Arralist anders übergeben werden ?
Vielen Dank
Hier mein Code:
public class MainActivity extends Activity {
private List<Map<String, Object>> data;
private ListView listView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);

//Fill_Data_put();//von Handgefüllt
Fill_Data_read();//aus Datei gelesen
listView = new ListView(this);

SimpleAdapter adapter = new SimpleAdapter(this, data,
android.R.layout.simple_list_item_2,
new String[] { "Hoehe",
"Minderung" },
new int[] { android.R.id.text1,
android.R.id.text2 });

listView.setAdapter(adapter);

listView.setOnItemClickListener(listener);

}

private void Fill_Data_put() {
data = new ArrayList<Map<String, Object>>();
Map<String, Object> hmp;
hmp = new HashMap<String, Object>();
hmp.put("Hoehe", "100");
hmp.put("Minderung", "passt voll");
data.add(hmp);
hmp = new HashMap<String, Object>();
hmp.put("Hoehe", "50");
hmp.put("Minderung", "mittig");
data.add(hmp);
hmp = new HashMap<String, Object>();
hmp.put("Hoehe", "30");
hmp.put("Minderung", "zu wenig");
data.add(hmp);
}
private void Fill_Data_read() {
data = new ArrayList<Map<String, Object>>();
Map<String, Object> hmap;
hmap = new HashMap<String, Object>();
String file = "/sdcard/download/Mietminderung.txt";
String line = "";

BufferedReader br;
String[] arr =null;
try {
br = new BufferedReader(new FileReader(file));
while ((line = br.readLine()) != null) {
arr = line.split(";");
String Hoehe = arr[0];
String Minderung = arr[1];
hmap.put(Hoehe, Minderung);
data.add(hmap);
}
br.close();
} catch (Exception e) {
}
}
}
03.10.2012
Lukos 37 5
2 Antworten
1
Hilfreich wäre noch eine Zeile aus deiner Textdatei, aber so spontan würde ich darauf tippen, dass dein Problem mit hmap.put(Hoehe, Minderung) in Fill_Data_read() zusammenhängt.

In Fill_Data_put() verwendest Du ja Höhe und Minderung als Key, womit deine HashMap vereinfacht so assieht:
Hoehe: 30
Minderung: zu wenig

In Fill_Data_read() hingegen verwendest du praktisch arr[0] als key und arr[1] als Value. Damit schaut deine HashMap, abhängig von deiner Textdatei, anders aus. Angenommen Du verwendest ein Format "Höhenwert;Minderungswert\n" für deine Textdatei, dann sieht deine Hashmap so aus:
30: zu wenig

Ersetzte doch mal die Zeile hmap.put(Hoehe, Minderung); durch
hmap.put("Hoehe", Hoehe);
hmap.put("Minderung", Minderung);

in Fill_Data_read()
03.10.2012
phg 1,6k 3
0
Hallo,
danke, hat mir geholfen.
Viele Grüße
04.10.2012
Lukos 37 5
Hallo,
bitte, gern. Tunnelblick-Bugs sind für einen selbst meistens am schwierigsten zu finden ;)
Du könntest meine Antwort noch als akzeptiert markieren damit die Frage in der Übersicht als gelöst angezeigt wird.
Viele Grüße
phg 04.10.2012

Stelle deine Android-Frage jetzt!