У меня есть следующий код, который я хочу использовать, чтобы убедиться, что мой текст редактирования не будет пустым. Поэтому, если первый нарисованный 0 (ноль) будет удален, он должен вернуться к 0 при изменении фокуса. Вот приложение на данный момент:
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
}
}
Я попробовал следующее в методе update ():
String str = edittxt.getText().toString();
if (str == "") {
edittxt.setText("0");
}
Но это не работает. Как я могу позволить редактировать текст никогда не будет пустым, вернуться к нулю, когда пусто, но не когда значение существует. Я уже убедился, что в тексте редактирования допускаются только числовые значения.