私はアンドロイドプログラミングの新人です。私の最大の問題は、この膨張するものの周りに本当に私の心を包むことができないと思います。これで私を助けてくれますか?EditText getText()は常に空文字列を返します
私はフォームで作業していますが、フォームのコンテンツは別のページに分かれています。フォームの次のページに進む前に、すべての必須の編集テキストを記入する必要があります。だから、 "次へ"ボタンをクリックすると、私は私のフォームのedittextsに空の入力をチェックさせたい。 Edittextsが空のままになっている場合、その周囲に境界線が描かれ、続行できません。
私の問題は、私がいくつかの編集テキストを入力しても、それらは常に空であると認識されるということです。だから私はそれらを埋める、 "次の"ボタンをクリックし、空であるかどうかにかかわらず、それぞれの周りに境界が描画されます。
基本的にはこれが問題の原因である方法:(特定のビューがある場合のEditText)
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が空であるかどうかを確認したいです。 「はい」の場合は、その周りに境界線を描きたいと思います。 明らかに、(edt.getText()。toString()。trim()。length()== 0)は常にtrueです。 メソッドボーダー()はここから呼び出されます。CheckInputで
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は、()ここで呼ばれている:
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が1つだけだった場合、正しい子であるかどうか、テキストが正しくタイプされているか、ドロアブルが正しいかどうかなど、正しい子を反復していたかどうかを確認しましたか?これは[mcve]ではありませんが、このコードを単純なスニペットに限定できますか? – AxelH
@IulianPopescuテストの対象ですか?ランダムな文字の大部分は – kalu