Hallo Leute;
Vorab möchte ich mich bei allen Usern bedanken die uns "Unerfahrenen" unter die Arme greifen und gelegentlich sehr viel Geduld mit uns aufweisen. Nochmals DANKE dafür!!!
Ich habe wohl schon viele Fehler mit Hilfe dieses Forums beheben und finden können aber bei dem Folgenden finde ich seit Tagen keine Lösung, obwohl es für mich so banal ist, dass es beinahe schon lächerlich ist!
Also folgendes Problem stellt sich mir seit einigen Tagen:
Ich lese eine Textdatei mit dem Bufferedreader ein und übergebe diese Zeilenweise in ein Array. Soweit so gut. Anschließend lasse ich mir diesen in einer ListView anzeigen. Dies funktioniert alles tadellos. Nun möchte ich aber die ausgelesene(n) Zeile(n) meiner Textdatei mit dem STRING-Befehl SPLIT aufteilen.
Die Textdatei ist dazu in vier Datensätze, welche mit "," getrennt sind aufgeteilt.
Aber wenn ich dies versuche, erhalte ich auf dem Handy kurz die Anzeige "lenght=1; index=1". Lasse ich mir nur den "SPLIT[0]" in die ListView "übergeben" wird er richtig angezeigt. Füge ich aber 1,2,3 hinzu, kommt die vorhin erwähnte Meldung. Da spielt es auch keine Rolle ob ich nur 1 oder alle "splits" anfüge!? Ich hoffe ich konnte das Problem verständlich erklären?
Hier mal meine MyListActivity:
Hier der MySimpleArrayAdapter
und zum Schluss noch mein Layout dazu
Ich hoffe ihr könnte mir helfen, denn die Vorschläge die ich im I-Net gefunden habe, funktionierten leider alle nicht!
Dank und lg
Schlucki
Vorab möchte ich mich bei allen Usern bedanken die uns "Unerfahrenen" unter die Arme greifen und gelegentlich sehr viel Geduld mit uns aufweisen. Nochmals DANKE dafür!!!
Ich habe wohl schon viele Fehler mit Hilfe dieses Forums beheben und finden können aber bei dem Folgenden finde ich seit Tagen keine Lösung, obwohl es für mich so banal ist, dass es beinahe schon lächerlich ist!
Also folgendes Problem stellt sich mir seit einigen Tagen:
Ich lese eine Textdatei mit dem Bufferedreader ein und übergebe diese Zeilenweise in ein Array. Soweit so gut. Anschließend lasse ich mir diesen in einer ListView anzeigen. Dies funktioniert alles tadellos. Nun möchte ich aber die ausgelesene(n) Zeile(n) meiner Textdatei mit dem STRING-Befehl SPLIT aufteilen.
Die Textdatei ist dazu in vier Datensätze, welche mit "," getrennt sind aufgeteilt.
Aber wenn ich dies versuche, erhalte ich auf dem Handy kurz die Anzeige "lenght=1; index=1". Lasse ich mir nur den "SPLIT[0]" in die ListView "übergeben" wird er richtig angezeigt. Füge ich aber 1,2,3 hinzu, kommt die vorhin erwähnte Meldung. Da spielt es auch keine Rolle ob ich nur 1 oder alle "splits" anfüge!? Ich hoffe ich konnte das Problem verständlich erklären?
Hier mal meine MyListActivity:
Java:
public class MyListActivity extends ListActivity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
try {
File sdcard = Environment.getExternalStorageDirectory();
File myFile = new File("/sdcard/dpLesen.txt");
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(
new InputStreamReader(fIn));
String line ="";
String[] Listeneintrag = new String[32];
for(int i = 0; (line = myReader.readLine())!=null; i++)
{ Listeneintrag[i] = line;
String[] splitResult = Listeneintrag[i].split(",", 2);
Listeneintrag[i] = splitResult[0] + "\n" + splitResult[1]; // mit splitResult[1] funktioniert es schon nicht mehr!
}
MySimpleArrayAdapter adapter = new MySimpleArrayAdapter(this, Listeneintrag);
setListAdapter(adapter);
myReader.close();
Toast.makeText(getBaseContext(),
"Datei gelesen",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();}
}
}
Hier der MySimpleArrayAdapter
Java:
public class MySimpleArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public MySimpleArrayAdapter(Context context, String[] values) {
super(context, R.layout.rowlayout, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
textView.setText(values[position]);
String s = values[position];
if (s.contains("TN") || s.contains("T+N") || s.contains("TPQ"))
{imageView.setImageResource(R.drawable.tn);}
else if (s.contains("N"))
{imageView.setImageResource(R.drawable.na);}
else if (s.contains("T"))
{imageView.setImageResource(R.drawable.ta);}
else if (s.contains("U")|| s.contains("X"))
{imageView.setImageResource(R.drawable.url);}
else
{imageView.setImageResource(R.drawable.leer);}
return rowView;
}
}
und zum Schluss noch mein Layout dazu
Java:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="de.android.listactivity.MyListActivity" >
<ImageView
android:id="@+id/icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/icon"
android:layout_marginLeft="27dp"
android:layout_toRightOf="@+id/icon"
android:text="@string/hello_world"
android:textSize="16sp" />
</RelativeLayout>
Ich hoffe ihr könnte mir helfen, denn die Vorschläge die ich im I-Net gefunden habe, funktionierten leider alle nicht!
Dank und lg
Schlucki