Tutorial aus einem Buch. brauche Hilfe.

O

orangbutan

Neues Mitglied
0
Hallo erstmal es geht darum, dass ich derzeit mit einem Buch lerne, aber bei mir immer ein Fehler kommt und ich weis nicht wie ich den beheben soll.
Ich habe vor dem Android Programmieren Java Grundlagen und einbisschen mehr gelernt. Jetzt habe ich ein Problem mit folgendem Code:

rot = Fehler
grün = aus dem Buch entnommen
schwarz = standart Android-Eclipse Gerüst


package com.example.tastendruch;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.Toast;


public class TastenDruckActivity extends ActionBarActivity {


private OnKeyListener editTextListener = new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event){

if((event.getAction()==KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {

Toast.makeText(v.getContext(), eingabefeld.getText(),
Toast.LENGTH_SHORT).show();
return true;
}
}


};






@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tasten_druck);

EditText eingabefeld = (EditText) findViewById(R.id.editText1);
eingabefeld.setOnKeyListener(editTextListener);


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.tasten_druck, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

}



Also ich verstehe es so: Oben wird eine Methode erzeugt, welche prüft ob ein Buchstabe im EditText eingegeben wird. Ist der Buchstabe runtergedrückt und wird Enter eingegeben, so wird der Text als Toast ausgegeben. Ihr dürft mich auch gern verbessern.

Das Problem ist, dass die Variable eingabefeld in der Obersten Methode nicht definiert ist. Ich weis nicht, was ich machen soll, da es im Buch genau so drinn steht. Wie kann ich das Problem lösen ?
 
Das Problem ist das eingabefeld in dieser Methode nicht bekannt ist. Du hast es in der onCreate deklariert, das heisst die Variable ist nur innerhalb von onCreate gültig. für näheres Schau mal in deinem Buch nach Gültigkeitsbereich von Variablen, evtl. auch mal bei google. Also einfach Global deklarieren und in onCreate initialisieren.
Code:
public class MainActivity extends ActionBarActivity {

    EditText eingabefeld;
    
    private OnKeyListener editTextListener = new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event){
            if((event.getAction()==KeyEvent.ACTION_DOWN) &&    (keyCode == KeyEvent.KEYCODE_ENTER)) {
                Toast.makeText(v.getContext(), eingabefeld.getText(),
                Toast.LENGTH_SHORT).show();
                return true;
            }
            return false;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        eingabefeld = (EditText) findViewById(R.id.editText1);
        eingabefeld.setOnKeyListener(editTextListener);
    }

........
Bitte imme Codes in einen Code Tag machen, dann ist es etwas leserlicher.
 
vielen Dank es hat funktioniert ! :thumbsup:
 

Ähnliche Themen

D
Antworten
17
Aufrufe
430
datNeMo
D
S
  • sorenn
Antworten
0
Aufrufe
96
sorenn
S
R
Antworten
4
Aufrufe
740
Rapidoman
R
Zurück
Oben Unten