Das hatten wir doch schon mal.
Also zuerst solltest Du bei dem String das erste Zeichen wegkürzen:
str = str.substring(1, str.length());
Dann den String splitten:
String[] strArr = str.split("@");
Dann machst Du ein zweites String[] mit nur den Namen drin:
String[] nameArr = new String[strArr.length];
for(int i = 0; i < strArr.length; i++) {
nameArr[i] = strArr[i].split("|")[1];
}
Das Namen-Array packst Du dann in das ListView.
liste.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, nameArr));
So. Und dann holst Du dir bei einem Klick auf ein Element der Liste dessen Position und lädst den Array-Eintrag:
liste.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
String entry = strArr[position];
Intent intent = new Intent(TestdroidActivity.this, Test2.class);
intent.putExtra("eintrag", entry);
startActivity(intent);
}
});
In der anderen Activity kannst Du dann den Eintrag holen mit:
String entry = getIntent().getExtras().getString("eintrag");
und diesen dann wieder an "|" splitten und entsprechend schön darstellen.
Ich hoffe das ist ausführlich genug!