Beiträge von Explosionselfe


    Dann hier nochmal mit gelöschtem "auskommentierten" und aus dem HTML-Editor :)

    Den FileInputStream etc bräuchte ich ja eigentlich nicht, da ja sowieso nur aus einer EditTextBox gelesen werden soll...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 "Erfassen" aufrufe, stürzt die App ab und in der LogCat steht
    FATAL EXCEPTION: main
    java.lang.OutOfMemoryError: [memory exhausted]


    Hilfeeee :-/

    OK, quatsch. Hatte n Denkfehler drin.
    Hab jetzt alles in die Activity selbst verschoben. dann tritt wieder Problem Nummer 2 auf, dass er bei hierbei meckert:


    Code
    FileInputStream fis = openFileInput(input);
    while ((line = dis.readLine()) != null)
    fis.close();



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


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

    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ß?

    Hallo zusammen,
    ich hab folgendes Problem.
    Ich sitz hier mit einem MDE-Gerät (Barcodescanner) mit Hardware-Tasten. Das Gerät läuft mit Android 4.0.3.
    Ich muss die "Auflegen"-Taste, sowie den "Home"-Button killen, da man die App nur über einen Button mit Passwort verlassen darf.



    Den Zurück-Button zu killen war ja noch relativ simpel, ebenso wie den Anrufen Button. Beim Auflegen/Home Button scheint sich das als schwieriger zu gestalten.


    Unter anderem hab ichs damit versucht

    Java
    public boolean onKeyDown(int keyCode, KeyEvent event){
    		if(keyCode == KeyEvent.KEYCODE_ENDCALL){
    return true;
    		}
    		else if(keyCode == KeyEvent.KEYCODE_CALL){
    return true;
    		}else if ((keyCode == KeyEvent.KEYCODE_HOME)){return true;}
    		return super.onKeyDown(keyCode, event);
    }



    Bei CALL funktionierts super, bei ENDCALL und HOME interessiert es das Gerät überhaupt nicht.


    Alternativ hab ich auch versucht, diese fertige Idee anzupassen und in meins zu integrieren, was aber auch nicht funktioniert.


    http://davidegironi.blogspot.d…-sample.html#.U_bezfl_tnM



    Auch diese habe ich schon versucht:


    http://stackoverflow.com/quest…button-pressed-on-android



    Alles ohne Erfolg, weil entweder es unter Android 4 nicht läuft oder ähnliches.
    Ich mag natürlich nicht abstreiten, dass ich es vllt auch nicht richtig integriert hatte.


    Langsam verzweifel ich.
    Gruß