Ich möchte jedes Mal, wenn ich auf ein Listenelement klicke, ein Dialog
öffnen.
Dieser Code funktioniert nicht und ich kann den Fehler wirklich nicht finden. Bitte hilf!
private void loadFeed(){
try{
BaseFeedParser parser = new BaseFeedParser();
messages = parser.parse();
List descriptions = new ArrayList();
List titles = new ArrayList(messages.size());
for (Message msg : messages){
descriptions.add(msg.getDescription());
titles.add(msg.getTitle() + "\n" +msg.getDate());
}
ArrayAdapter adapter =
new ArrayAdapter(this, R.layout.row,titles);
this.setListAdapter(adapter);
} catch (Throwable t){
Log.e("AndroidNews",t.getMessage(),t);
}
}
@Override
protected void onListItemClick(ListView descriptions,
View v, int position, long id) {
super.onListItemClick(descriptions, v, position, id);
String description = descriptions.get(position);
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.single);
dialog.setTitle("Blog");
dialog.setCancelable(true);
TextView text = (TextView) dialog.findViewById(R.id.TextView1);
text.setText(description);
dialog.show();
}
Mit diesem Code läuft die App, der Dialog zeigt die Beschreibung an, aber die Beschreibung wird auch im Listenelement angezeigt.
messages = parser.parse();
List titles = new ArrayList(messages.size());
for (Message msg : messages){
titles.add(msg.getTitle() + "\n" +msg.getDate() + "\n\n" + msg.getDescription());
}
ArrayAdapter adapter =
new ArrayAdapter(this, R.layout.row,titles);
this.setListAdapter(adapter);
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String selection = l.getItemAtPosition(position).toString();
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.row2)
dialog.setCancelable(true);
TextView text = (TextView) dialog.findViewById(R.id.SinglePost);
text.setText(selection);
dialog.show();
}
0 Stimmen
@kotas: Falsch, was bedeutet das Problem, mit dem du konfrontiert bist? Kannst du mir bitte sagen, ob du Probleme im Logcat hattest oder nicht?
0 Stimmen
Eclipse lässt das Programm nicht laufen...es hebt die Zeile mit roter Linie hervor, um den String description = descriptions.get(position); zu markieren und fordert auf, einen Cast zu descriptions hinzuzufügen (ich habe es versucht, aber das zwingt meine App herunter).