我是新来的Android编程,我想我最大的问题是,我真的不能换我的脑海里围绕这一切的充气东西。你能帮我解决这个问题吗?的EditText的getText()总是返回空字符串
我正在一个形式,形式内容分隔成不同的网页。在进入表单的下一页之前,您需要填写所有必填的EditText。所以当点击“下一步”按钮时,我想要检查表单edittexts是否为空输入。如果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上是空的。 如果是,我想围绕它绘制边框。 显然,如果(edt.getText()。toString()。trim()。length()== 0)始终为真。 该法边境()就是从这里称为:
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()我循环通过一个孩子的意见,并把把它们放到我的边框方法。 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);
}
}
这里我要确保你先听听你的输入检查,然后才能继续到表单的下一个部分。
这里是我的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