Android – Set Focus on EditText


I have an EditText-Field and set an OnFocusChangeListener for it. When it has lost focus, a method is called, which checks the value of the EditText with one in the database. If the return-value of the method is true, a toast is shown and the focus should get back on the EditText again. The focus should always get back on the EditText and the keyboard should show, until the return-value of the method is false.

EDIT: I think, I haven't made my real problem perfectly clear yet: No other Item on the Screen should be able to edit, until the value of the EditText is edited to a value, which makes the method "checkLiganame(liganame)" return false. Only the EditText-Field should be editable.

here is my code (which doesn't work for me):

final EditText Liganame = (EditText) findViewById(;

    Liganame.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {

                String liganame = Liganame.getText().toString();

                if (checkLiganame(liganame)) {
                    Toast toast = Toast.makeText(CreateTableActivity.this,
                            "Dieser Liganame ist bereits vergeben",

and the method:

public boolean checkLiganame(String liganame) {
    boolean found = false;

    DatabaseHelper databaseHelper = new DatabaseHelper(this);
    SQLiteDatabase db = databaseHelper.getReadableDatabase();

    Cursor cursor = db.query("liga", new String[] { "liganame" },
            "liganame = '" + liganame + "'", null, null, null, null);
    Log.i("Liganame: ", String.valueOf(cursor));

    if (cursor != null) {
        found = true;

    return found;

This code leads to the following result: After the EditText has lost focus, the focus jumps back to EditText, but I can't edit the text anymore.

EDIT2: Changed my code. Scenario:

I click on the first EditText and put a String in it, which is already in the database. The toast is showing. Now I can't edit my String anymore. I click "next" on the keyboard and the focus stays on the first EditText. I try to edit my String, but nothing happens. Instead my new String is showing in the second EditText. I click on the back-arrow of my device and reclick on the first and second EditText –> no keyboard is showing.

Here is my new Code:

public class CreateTableActivity extends Activity implements
    OnFocusChangeListener {

private EditText Liganame, Mannschaftsanzahl;

protected void onCreate(Bundle savedInstanceState) {

    Liganame = (EditText) findViewById(;
    Mannschaftsanzahl = (EditText) findViewById(;

    final Button save_button = (Button) findViewById(;

    OnClickListener mCorkyListener = new OnClickListener() {
        public void onClick(View v) {


public void onFocusChange(View v, boolean hasFocus) {
    String liganame = Liganame.getText().toString();

    if (checkLiganame(liganame)) {
        if (Liganame.requestFocus()) {
                    "Dieser Liganame ist bereits vergeben",

Best Solution

Just put this line on your onCreate()