SPLIT funktion bei STRING funktioniert nicht!

Schlucki6666

Mitglied
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:
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
 

Joose

Top Contributor
Java:
				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!
				}

Was mir schon mal auffällt ist das du den Split auf maximal 2 Elemente beschränkst aber meinst es könnten bis zu 4 sein.
Ansonsten kann es auch vorkommen das es eine Zeile ohne "," gibt? Schon mal testweise jede gelesene Zeile ausgeben lassen?
 

Schlucki6666

Mitglied
@Joose;
Danke für deine Antwort.
Das ich den Split auf max. 2 Elemente beschränkte war nur aus meinem "herumprobieren" übrig geblieben. ABER du hast mir den Fehler gesagt!!! Es gab eine Zeile ohne "," und dort blieb die App hängen!!!
Danke!
Manoman, 5 Tage gesucht wie ein Irrer und dann wegen so einer Kleinigkeit ........
Könnte mich in den A..... beißen ;(
 

Joose

Top Contributor
Manoman, 5 Tage gesucht wie ein Irrer und dann wegen so einer Kleinigkeit ........
Könnte mich in den A..... beißen ;(

Du hast nirgends geschrieben welche "Fehlermeldung" du bekommen hast, aber anhand deiner Beschreibungen wird es wahrscheinlich eine ArrayIndexOutofBoundsException gewesen sein.
Diese kommt immer wenn man auf einen Index der nicht vorhanden ist zugreifen. -> daher bei so einer Exception immer prüfen ob es auch genügend Indexes gibt auf die man zugreifen kann!
So sucht man nicht 5 Tage lang ;)
 

Schlucki6666

Mitglied
@joose;
Hast natürlich zu 100% recht! Ist/War eben ein absoluter Anfängerfehler :) welcher aber den Vorteil hatte, dass ich sehr viel im I-Net und hier im Forum gelesen habe und so manch offene Frage/Problem auch so nebenbei gelöst wurde :)
Danke aber nochmals für deine Hilfe!
Hoffe ich kann wieder auf dich zurückgreifen :)

Schlucki
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Edit Text Drawable Icon ändern plus Funktion Android & Cross-Platform Mobile Apps 30
W Bilder und Videos anzeigen lassen mit Zoom- und Loop-Funktion Android & Cross-Platform Mobile Apps 5
N XY-Plottet keine Daten obwohl Funktion ausgeführt wird Android & Cross-Platform Mobile Apps 4
J Teilen funktion Android & Cross-Platform Mobile Apps 2
K Verständisfrage bzgl. Buttons und ihnen eine Funktion geben. Android & Cross-Platform Mobile Apps 3
J Java ME Canvas Klasse Gameloop und Funktion Android & Cross-Platform Mobile Apps 2
W UTF-8 String Android & Cross-Platform Mobile Apps 66
W Base64 konvertierter URI String Android & Cross-Platform Mobile Apps 32
W String Array Pfad in Int setzen Android & Cross-Platform Mobile Apps 54
W Volley String Response gibt falchen if aus Android & Cross-Platform Mobile Apps 35
H Anfänger String types not allowed (at 'textColor' with value 'black' Android & Cross-Platform Mobile Apps 13
W Firestore String in Apps Laden Android & Cross-Platform Mobile Apps 10
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
C Zugriff auf die Position eines String- bzw Spinner-Arrays Android & Cross-Platform Mobile Apps 1
J Android String in andere Java-Dateien überführen Android & Cross-Platform Mobile Apps 1
J R.string.(variable) geht das Android & Cross-Platform Mobile Apps 3
R Android incomingNumber bein Eingehenden Anruf immer leerer String Android & Cross-Platform Mobile Apps 4
G String an einen php Script senden Android & Cross-Platform Mobile Apps 8
J Plötzlich "java.lang.String cannot be converted to JSONObject" Android & Cross-Platform Mobile Apps 9
T int to string ... Android & Cross-Platform Mobile Apps 8
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
M jsonobject cannot be cast to java.lang.string Android & Cross-Platform Mobile Apps 4
N Android Hilfe string to float geht nicht... Android & Cross-Platform Mobile Apps 4
J Einen String bewegen wie? Android & Cross-Platform Mobile Apps 3
R String wie WAV Datei nutzen Android & Cross-Platform Mobile Apps 4
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
L String dem Display anpassen Android & Cross-Platform Mobile Apps 12
G Text parsen String to Double Android & Cross-Platform Mobile Apps 2
S ein String nach vorgegebenen Zeichen teilen Android & Cross-Platform Mobile Apps 3
N Zeichen im String löschen? Android & Cross-Platform Mobile Apps 18
M MIDlet + Datum in String Android & Cross-Platform Mobile Apps 5

Ähnliche Java Themen

Neue Themen


Oben