Textdatei in ListView einlesen Tutorial gesucht!?

Schlucki6666

Mitglied
Hallo;

Ich habe versucht in den letzten Tagen selber das Problem zu lösen aber ich komme leider nicht auf den Fehler bzw. zur Lösung des Problems.

Also ich versuche eine Textdatei in eine ListView (mit SubItems) einzulesen. Mit einem TextView/EditView funktioniert es, aber beim ListView, stehe ich leider komplett auf dem Schlauch!
Beim Einlesen eines "normalen" Strings ("Apfel", "Birne", .....) auch mit Image, habe ich keine Probleme nur eben bei der Datei:
Öffnen der Datei - Auslesen der Datei - Übergeben an die ListView - und dort dann Anzeigen. So sollte es sein. Aber ........ leider nicht bei mir :oops:

Hat jemand zufällig einen Link/Tutorial oder Info wie ich auf meinen Fehler komme?
Angefügt habe ich euch meine letzte nicht funktionierenden Code, damit ihr eine Ahnung habt, wie ich rummurkse

Java:
public static void main(String [] args){	
		
		try{
			File sdcard = Environment.getExternalStorageDirectory();
			File myFile = new File(sdcard,"Test.txt");
			FileReader fread = new FileReader(myFile); //öffntet die gewünschte txt Datei
			BufferedReader in = new BufferedReader(fread); // txt wird geladen
			
			for(int i = 0;(line = in.readLine())!=null; i++){ 				
				array[i] = line; // array[i] wird mit line(der aktuellen Zeile) belegt			
				
			}
		}
		catch(IOException e){
			//System.out.println("IO-Fehler!");
		}
		
		//System.out.println(array[0]); 						
	}
	
ListView list;

  String[] web= {"TesT"}; //HIER SOLLTE, SO DENKE ICH, DER INHALT DER DATEI ÜBERGEBEN WERDEN ODER - WENN JA WIE?
 
  Integer[] imageId = {
		  R.drawable.baustelle
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    Button button = (Button) findViewById(R.id.button1);
	button.setOnClickListener(this);
    
	
  }
  
 
  	public void onClick(View v){
    	if(v.getId()==R.id.button1)
    		{
    		try{
    		File sdcard = Environment.getExternalStorageDirectory();
			File myFile = new File(sdcard,"Test.txt");
			FileInputStream fIn = new FileInputStream(myFile);
			BufferedReader myReader = new BufferedReader(
					new InputStreamReader(fIn));
						String aDataRow = "";
						String aBuffer = "";
			
			while ((aDataRow = myReader.readLine()) != null) {
				aBuffer += aDataRow + "\n";
			}
			
					CustomList adapter = new
    		        CustomList(MainActivity.this, web, imageId);
    				
    				TextView txtTitle = (TextView)findViewById(R.id.textView1);
    				txtTitle.setText("Soweit so gut!");
    				
    				list=(ListView)findViewById(R.id.list);
    		        list.setAdapter(adapter);
    		        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    		        		               
    		        	
    		        	@Override
    		                public void onItemClick(AdapterView<?> parent, View view,
    		                                        int position, long id) {
    		                    Toast.makeText(MainActivity.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show();
    		                }
    		            });
			//list.setText(aBuffer);
			myReader.close();
			Toast.makeText(getBaseContext(),
					"Datei gelesen",
					Toast.LENGTH_SHORT).show();
			
    		}
    		catch (Exception e) {
    			Toast.makeText(getBaseContext(), e.getMessage(),
    					Toast.LENGTH_SHORT).show();
    		
    				
			
    				
    		}
    		}

}}

Steinigt mich bitte nicht gleich, wenn der Code etwas verwirrend ist oder umständlich. :pfeif:
Ich habe für meine App wirklich schon viele Fehler beseitigen können dank dem Forum, aber hier blicke ich gerade echt nicht durch und finde auch keine Hilfe die mir weiterhilft??
Aber vermutlich habe ich die Lösung schon 100mal gelesen und nicht bemerkt.

Danke vorab für eure Hilfe und vor allem für euer Verständnis!!!

lg
Schlucki
 

dzim

Top Contributor
Ohne den Code der "CustomList" - der besser CustomListAdapter heissen sollte - wird das schwierig. Ich denke mal, das da irgendwo das Problem liegt.

Darüber hinaus: Verrate mir bitte, warum deine Klasse eine Main-Methode enthält! Dieses Konzept gibt es in Android nicht und ist schlicht falsch. Es gibt zwar Frameworks für (Dekptop?) Anwendungen, die man 1:1 so auf Android umziehen kann, aber dann gibt es da wahrscheinlich eine Wrapper-Activity, die das statisch aufruft und weiss, wie man mit den Calls umgeht. Für deinen Code scheint das aber nicht zu gelten...
 

Schlucki6666

Mitglied
@dezim:

Danke für deine Antwort. Ich muss mich aber auch entschuldigen, da im Code fragmente enthalten sind, die ich vergessen habe zu löschen :oops:
Ich bin jetzt leider auswärts und kann daher nicht den richten Code einfügen bzw. ergänzen. Wird ehestmöglich von mir nachgereicht.

Schlucki
 

Schlucki6666

Mitglied
Hier nun der Code mit dem ich versuche eine txt-Datei in eine ListView einzulesen!


Hier ist meine MainActivity:

Java:
public class MainActivity extends Activity {{
	
		try {
			
			File sdcard = Environment.getExternalStorageDirectory();
			File myFile = new File(sdcard,"Test.txt");
			
			FileInputStream fIn = new FileInputStream(myFile);
			BufferedReader myReader = new BufferedReader(
					new InputStreamReader(fIn));
	
			String aDataRow = "";
			String aBuffer = "";
			
			while ((aDataRow = myReader.readLine()) != null) {
				aBuffer += aDataRow + "\n";
			}}
			catch (Exception e) {
				Toast.makeText(getBaseContext(), e.getMessage(),
						Toast.LENGTH_SHORT).show();
			
		//myReader.close();

	}}
	
		
		ListView list;
  String[] web = {   // ich denke hier sollte der Inhalt der Datei übergeben werden!!!
    //"Google Plus",
     // "Twitter",
     // "Windows",
     // "Bing",
     // "Itunes",
     // "Wordpress",
     // "Drupal"
  } ;
  Integer[] imageId = {
      R.drawable.baustelle,
      R.drawable.baustelle,
      R.drawable.baustelle,
      R.drawable.baustelle,
      R.drawable.baustelle,
      R.drawable.baustelle,
      R.drawable.baustelle

  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    CustomList adapter = new
        CustomList(MainActivity.this, web, imageId);
    list=(ListView)findViewById(R.id.list);
        list.setAdapter(adapter);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    Toast.makeText(MainActivity.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show();
                }
            });
  }
}

Also das Dateiauslesen funktioniert in eine TextView und eine ListView kann ich mit den Strings in "web" befüllen. Aber wie ich nun den Dateiinhalt (Zeilen der Datei) in die ListView bekomme? Übersteigt gerade massiv meinen Horizont!


Hier ist meine CustomList.java:

Java:
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomList extends ArrayAdapter<String>{
private final Activity context;
private final String[] web;
private final Integer[] imageId;
public CustomList(Activity context,
String[] web, Integer[] imageId) {
super(context, R.layout.list_single, web);
this.context = context;
this.web = web;
this.imageId = imageId;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_single, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);
ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(web[position]);
imageView.setImageResource(imageId[position]);
return rowView;
}
}

Sorry, wenn ich mich eventuell etwas blöd anstelle....... bin eben Anfänger ;(

Danke Schlucki
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Lesen / Schreiben einer Textdatei - SD-Karte Android & Cross-Platform Mobile Apps 42
B Android Textdatei laden (klappt nicht) Android & Cross-Platform Mobile Apps 4
S Fehler beim Textdatei einlesen!? Android & Cross-Platform Mobile Apps 7
J Android Textdatei aus dem Internet auslesen und ausgeben Android & Cross-Platform Mobile Apps 2
X Textdatei aus Assets lesen Android & Cross-Platform Mobile Apps 5
B Inhalt von StringBuffer in Textdatei speichern? Android & Cross-Platform Mobile Apps 6
B Java ME Textdatei zeilenweise lesen? Android & Cross-Platform Mobile Apps 5
B Textdatei auf Handy erstellen / lesen / schreiben? Android & Cross-Platform Mobile Apps 2
J ListView Item individuell einfärben Android & Cross-Platform Mobile Apps 17
I Android ListView, Werte aktualisieren ohne die Liste komplett neu zu laden Android & Cross-Platform Mobile Apps 5
W ListView OnItemClicklistener setzen mit Ausgabe Android & Cross-Platform Mobile Apps 35
K Null-Pointer-Exception in ListView - wird über Datenbank gefüllt Android & Cross-Platform Mobile Apps 1
I Android ListView (Custom) soll auf Hardwaretasten nicht reagieren. Android & Cross-Platform Mobile Apps 10
W ListView und Arrays... Android & Cross-Platform Mobile Apps 68
W Android Wieso kann ich keine ListView mehr zum Layout hinzufügen? Android & Cross-Platform Mobile Apps 1
W Android Kann keine ListView mehr in der MainActivtiy anzeigen, obwohl noch sehr viel Platz frei ist Android & Cross-Platform Mobile Apps 1
L ListView aktuallisiert sich nicht Android & Cross-Platform Mobile Apps 15
N Probleme mit custom dynamic ListView Android & Cross-Platform Mobile Apps 15
L Android ListView kollabiert in Scrollview Android & Cross-Platform Mobile Apps 9
A ImageButton in ListView Item bei klick ändern Android & Cross-Platform Mobile Apps 3
J Android Suche in einer ListView Android & Cross-Platform Mobile Apps 3
H Android ArrayList <-> ArrayAdapter <-> ListView Android & Cross-Platform Mobile Apps 10
L Android ListView swipe zum löschen Android & Cross-Platform Mobile Apps 1
B Android ListView set custom check Image and delete Android & Cross-Platform Mobile Apps 0
M Android ListView wird nicht dargestellt Android & Cross-Platform Mobile Apps 2
Maresuke Android Android ListView Textfarbe und Texthintergrund ändern? Android & Cross-Platform Mobile Apps 5
A Android Problem mit ListView und OnItemClickListener.. Android & Cross-Platform Mobile Apps 10
S Listview Einträge aus "xml" Datei Android & Cross-Platform Mobile Apps 1
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
M Android ListView und Checkbox Android & Cross-Platform Mobile Apps 6
L TableRows in ListView darstellen Android & Cross-Platform Mobile Apps 2
M ListView mit ListAdapter füllen Android & Cross-Platform Mobile Apps 5
U Android ListView Frage Android & Cross-Platform Mobile Apps 6
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
H Android ListView Images aus dem Internet via Thread Android & Cross-Platform Mobile Apps 3
T Android: ListView-Adapter: Adapter wird ständig aufgerufen Android & Cross-Platform Mobile Apps 2
H Android SAX|ListView NullPointerException Android & Cross-Platform Mobile Apps 2
A Probleme mit ListView / ArrayAdapter Android & Cross-Platform Mobile Apps 3
L Android content URI Datei einlesen Android & Cross-Platform Mobile Apps 9
S Android Datei aus dem Netz einlesen Android & Cross-Platform Mobile Apps 6
L Android Android exportierte XML einlesen Android & Cross-Platform Mobile Apps 2
L Android Einlesen und rausschreiben von Daten auf SD Android & Cross-Platform Mobile Apps 3
L Android Hilfe bei Passwort einlesen Android & Cross-Platform Mobile Apps 5
W Videofile einlesen Android & Cross-Platform Mobile Apps 16
B Textfile Zeilenweise einlesen Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Neue Themen


Oben