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.