Inhalt einer EditTextBox in Array schreiben und in ListView ausgeben

E

Explosionselfe

Neues Mitglied
0
Kurze Allgemeinbeschreibung:
Ich "spiel" mit einem Android Gerät mit Barcode-Leser herum.
Ich hab eine Erfassen.xml, in der oben die Barcodes in eine EditTextBox eingelesen werden und darunter in einer ListView ausgegeben werden sollen. Am Ende soll das das in der ListView steht, auf Buttonklick, in eine Datei gespeichert werden. (so weit bin ich aber noch nicht)
Ich hänge daran, dass die Barcodes in die ListView geschrieben werden. Problematisch ist schon, wenn man 2 Barcodes hintereinander scannt, die einfach hintereinander weg geschrieben werden.

Ich hab diverse Lösungsansätze probiert

Das war der erste (noch ohne ListView als Ausgabe, sondern EditTextBox als Ausgabefeld)

Code:
public void onTextChanged(CharSequence s, int start, int before, int count) {

//            	input = barcode.getText().toString();
//	            ausgabe.setText(input.toString());

            	}
            	
            
             
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }
             
			@Override
			public void afterTextChanged(Editable s) {
				// TODO Automatisch generierter Methodenstub
				
			}
        }); 
		}
Da eben das Problem, das Barcodes einfach hintereinander weggeschrieben werden. Dann kam ich auf die Idee mit dem Array und hab da folgendes gebastelt:

Code:
public void onTextChanged(CharSequence s, int start, int before, int count) {

            	FileInputStream fis = openFileInput(input);
            	try {
            		 String line, temp="";
                         ArrayList<String> barcodeinput = new ArrayList<String>();
            		 int i=0;
                     DataInputStream dis = new DataInputStream(fis);
                     
                     while((line = dis.readLine()) != null){
                    	 
                    	i++;
                     	if(i%2 == 0){
                                 temp=temp+"\n"+line;
                    		 barcodeinput.add(temp);
                                 temp="";
                     	}
                        temp=line;
                     }

        fis.close();
        ListAdapter ladapt = new ArrayAdapter<String>(Erfassen.this, android.R.layout.simple_list_item_1, barcodeinput);
        ListView lv = (ListView) findViewById(R.id.listView1);
        lv.setAdapter(ladapt);
            	}
            	
            	finally {}
            	}
            	
            
             
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }
             
			@Override
			public void afterTextChanged(Editable s) {
				// TODO Automatisch generierter Methodenstub
				
			}
        }); 
		}
Jedoch krieg ich im o.g. Ausschnitt folgende Fehlermeldung:

Der Konstruktor ArrayAdapter<String>(new TextWatcher(){}, int, ArrayList<String>) ist nicht definiert (undefined)

Lt. Google hab ich schon probiert, "this" durch "myActivity.this" zu ersetzen. Dann ist der Fehler zwar weg, jedoch schlagen dann

Code:
FileInputStream fis = openFileInput(input);

while ((line = dis.readLine()) != null)

fis.close();
alarm:

openFileInput(input) meldet Nicht behandelter Ausnahmebedingungstyp (exception type) FileNotFoundException

Die beiden anderen warnen mit: Nicht behandelter Ausnahmebedingungstyp (exception type) IOException

Kann jemand weiter helfen?

Oder in ich da auf komplett falschem Fuß?
 
Ohne dass ich jetzt alles durchgelesen habe. Zu dem letzten Teil: hau es halt mal testweise in einen try-catch-Block.
 
Den FileInputStream etc bräuchte ich ja eigentlich nicht, da ja sowieso nur aus einer EditTextBox gelesen werden soll, des Weitern hab ich das aus der Methode heruas genommen und in die Activity selber gesetzt....Nun sieht das ganze so aus:

Code:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.barerfassen);    
EditText barcode = (EditText) findViewById(R.id.barcodes);	 
//String input;	 
//FileInputStream fis = openFileInput(input);  
try {  
String line = barcode.getText().toString(), temp="";  
ArrayList<String> barcodeinput = new ArrayList<String>(); 
int i=0;
  //DataInputStream dis = new DataInputStream(fis);  
while(line != null)
{ i++;  if(i%2 == 0)
{  temp=temp+"\n"+line;            		 
barcodeinput.add(temp);                        
temp="";             	
}  
temp=line;             
}
//fis.close();

ListAdapter ladapt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, barcodeinput);
ListView lv = (ListView) findViewById(R.id.listView1);lv.setAdapter(ladapt);    	}  finally {}


Werden auch keine Fehler mehr angezeigt, jedoch wenn ich nun die App auf dem Gerät starte und "Erfassen" aufrufe, stürzt die App ab und in der LogCat steht
FATAL EXCEPTION: main
java.lang.OutOfMemoryError: [memory exhausted]


Hilfeeee :-/
 
Zuletzt bearbeitet:

Ähnliche Themen

R
Antworten
6
Aufrufe
995
swa00
swa00
A
Antworten
10
Aufrufe
1.017
swa00
swa00
Muecke1982
Antworten
8
Aufrufe
1.032
Skyhigh
Skyhigh
Zurück
Oben Unten