6 Stimmen

Verhindern, dass der Text leer ist

Ich habe den folgenden Code, den ich verwenden möchte, um sicherzustellen, dass meine edittext nicht leer sein wird. Also, wenn die erste gezeichnete 0 (Null) entfernt wird, muss es auf 0 zurückkehren, wenn der Fokus ändert, Hier ist die App so weit:

package your.test.two;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class TesttwoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        EditText edtxt = (EditText)findViewById(R.id.editText1);
        // if I don't add the following the app crashes (obviously):
        edtxt.setText("0");
        edtxt.setOnFocusChangeListener(new View.OnFocusChangeListener() {

            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub
                update();   
            }
        });
    }

    public void update() {
        EditText edittxt = (EditText)findViewById(R.id.editText1);
        Integer i = Integer.parseInt(edittxt.getText().toString());
        // If i is an empty value, app crashes so if I erase the zero
        //on the phone and change focus, the app crashes
    }
}

Ich habe folgendes in der update()-Methode ausprobiert:

String str = edittxt.getText().toString();
if (str == "") {
    edittxt.setText("0");
}

Aber es funktioniert nicht. Wie kann ich zulassen, dass der Edit-Text nie leer ist, auf Null zurückgeht, wenn er leer ist, aber nicht, wenn ein Wert vorhanden ist. Ich habe bereits sichergestellt, dass der Edittext nur numerische Werte zulassen kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X