Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
KlassenFunktion in einem Funktionsaufruf definieren
bin seit kurzem dabei auf Java umzusteigen. Die Methoden von Java finde ich sehr interessant. Im Moment interessiert mich das Definieren einer Funktion im Aufruf einer weiteren Funktion. Leider kenne ich den Fachbegriff dafür nicht.
Als Beispiel dazu, möchte ich eine Standard "InputBox" implementieren. Also eine Funktion, welche einen Dialog öffnet, welcher einen OK und Cancel Button, sowie ein Eingabefeld besitzt. Diese Funktion soll einfach den Wert des Eingabefeldes zurückliefern.
Beispiel:
Java:
public void showInputBox(Context base_t, String message_s, String title_s, ???)
{
final EditText input = new EditText(base_t);
new AlertDialog.Builder(base_t)
.setTitle(title_s)
.setMessage(message_s)
.setView(input)
.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
???
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
???
}
}).show();
}
Wie man hier sieht, gibt es hier die onClick Funktionen die in den Methoden definiert werden können. Dies möchte ich nun nach oben weiterleiten. Der Aufruf sollte dann irgendwie so aussehen...
Java:
showInputBox(this, "Bitte etwas eingeben!", "Eingabe", new ???.???()
{
public void returnValue(String value_s)
{
System.out.println(value_s);
}
})
Meine Frage ist nun, wie bekomme ich das hin und wie nennt man diese Prozedur?
public class InputBox extends ContextWrapper
{
public void returnValue(String value_s)
{
}
public InputBox(Context base_t, String message_s, String title_s)
{
super(base_t);
final EditText input_t = new EditText(base_t);
new AlertDialog.Builder(base_t)
.setTitle(title_s)
.setMessage(message_s)
.setView(input_t)
.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
returnValue(input_t.getText().toString());
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
returnValue("");
}
}).show();
}
}
Java:
InputBox inputBox_t = new InputBox(this, "Bitte etwas eingeben", "Titel")
{
@Override public void returnValue(String value_s)
{
System.out.println(value_s);
}
};