Я новичок в программировании на Android, и я думаю, что моя самая большая проблема заключается в том, что я не могу полностью обдумать все эти раздувающиеся вещи. Можете ли вы помочь мне с этим?EditText getText() всегда возвращает пустую строку
Я работаю над формой, содержимое форм разделено на разные страницы. Прежде чем перейти к следующей странице формы, вам необходимо заполнить все обязательные EditTexts. Поэтому, когда нажата кнопка «next», я хочу, чтобы моя форма edittexts была проверена на пустой вход. Если Edittexts оставлены пустыми, вокруг них нарисована граница, и вы не можете продолжить.
Моя проблема в том, что даже если я заполню некоторые редакторы, они все еще всегда воспринимаются как пустые. Поэтому я заполняю их, нажимаю кнопку «Далее», и вокруг каждого рисуется граница, независимо от того, пуст или нет.
в основном это метод вызывает проблему:
public void Border(View view){
if (view instanceof EditText) {
EditText edt = (EditText) view;
if (edt.getText().toString().trim().length() == 0) {
edt.setBackgroundResource(R.drawable.border);
}
}
}
Так что я хочу, чтобы проверить (если данный вид является EditText) EditText пуст. Если да, я хочу нарисовать вокруг него границу. Очевидно, что if (edt.getText(). ToString(). Trim(). Length() == 0) всегда истинно. Метод Border() вызывается здесь:
public boolean CheckInput(View v) {
EditText phone = (EditText) findViewById(R.id.phonenr_et);
EditText email = (EditText) findViewById(R.id.email_et);
CheckBox box = (CheckBox) findViewById(R.id.agreement_checkbox);
if (v.getId() != R.id.job_hunting_btn) {
LinearLayout layout = (LinearLayout) findViewById(R.id.job_hunt_lay);
if (layout.getChildCount() != 0) {
for (int i = 0; i < layout.getChildCount(); i++) {
View view = layout.getChildAt(i);
Border(view); // <-- Border is called
}
}
}
...
}
В CheckInput() Я перекручивание через мнения детей и положить положить их в мой метод Border. CheckInput() называется здесь:
public void OnNextButtonClick(View v) {
if (CheckInput(v)) {
ViewList.get(CurrentViewId).setVisibility(View.GONE);
if (v.getId() == R.id.job_hiring_btn)
CurrentViewId = ArbeitgeberViewId;
else {
CurrentViewId++;
if (CurrentViewId == ArbeitgeberViewId)
CurrentViewId = LastViewId;
}
ViewList.get(CurrentViewId).setVisibility(View.VISIBLE);
}
}
Здесь я хочу, чтобы убедиться, что вы первый ваш Input проверены, прежде чем перейти к следующей части формы.
Вот мой OnCreate() Метод:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.content_main);
setContentView(R.layout.job_hiring_data1);
setContentView(R.layout.job_hiring_data2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
ViewList.add(findViewById(R.id.content_main_lo));
ViewList.add(findViewById(R.id.job_hiring_data1_lo));
ViewList.add(findViewById(R.id.job_hiring_data2_lo));
ViewList.add(findViewById(R.id.job_hunt_lay));
ArbeitgeberViewId = ViewList.size();
ViewList.add(findViewById(R.id.offered_job_data1_lo));
LastViewId = ViewList.size();
ViewList.add(findViewById(R.id.formular_finished_lo));
ImprintViewId = ViewList.size();
ViewList.add(findViewById(R.id.imprint_lo));
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
мне нужно "раздувать" в EditText первый или что-то делать? Я честный, это групповой проект, поэтому все, что было в OnCreate(), было создано членом группы, и я действительно не знаю, что там происходит -
Надеюсь, вы можете мне помочь!
Спасибо заранее!
Что вы вводите в этом 'EditText'? –
Вы проверили, выполняете ли вы правильные дочерние элементы, если был один EditText, если это было правильно, если текст был правильно напечатан, если ваш drawable был прав, ...? И это не [mcve], можете ли вы ограничить этот код простым snipet? – AxelH
@IulianPopescu Вы имеете в виду для тестирования? Случайные письма в основном – kalu