2016-04-27 5 views
0

ファーストを使用して、NULL値でのEditTextを取り除く方法は、ここに私のコードは次のとおりです。アンドロイド:すべてのループ

startRandomizing.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     ArrayList<String> values = new ArrayList<>(); 
      int idList[] = new int[]{R.id.textBox1,R.id.textBox2,R.id.textBox3, 
             R.id.textBox4,R.id.textBox5,R.id.textBox6}; 

      for(int id : idList){ 
       if (findViewById(id) != null) { 
        values.add(((EditText) findViewById(id)).getText().toString()); 
        } 
      } 


    String[] myItems = values.toArray(new String[values.size()]); 

長(ように私は何をしたいと、すべてのnull値を取り除くれます配列のmyItems.length)は、テキストボックス1〜6の値に依存します。

(例:textBox1に "Hello"、textBox2に "World"という文字列があり、残りは空です。残りのテキストボックスには値がないので、myItems.lengthの出力は2にする必要があります。

このコードは、6(cすべてのテキストボックスを表示しません)。どこが間違っていたのですか?

+0

サウンズ: '(theEditText.getText()場合のtoString()! = null)values.add(theEditText.getText()。toString()); ' – m02ph3u5

答えて

0
次のようにforループ内のコードを変更し

:あなたは値がnullの場合の値を追加しないように

String s = ((EditText) findViewById(id)).getText().toString(); 
if(!TextUtils.isEmpty(s)){ 
    values.add(s); 
} 
+0

私の30分の問題、投稿後2分で回答しました。ありがとうございました。しかし、問題はありますが、文字列に変換しない限り(文字列の例= myItems.length + "";)、私はmyItems.lengthを持ち出すことができないようです(アプリケーションがクラッシュする) –

+0

'私は私のアイテムを持ち出すことができないようです。あなたはそれを印刷しようとしているのですか?この場合、LogとSystemの両方の出力では、文字列だけが出力として出力されます。 String.valueOf(values.size())を使って長さ( 'int')を' String'に変更する必要があります。 – Antrromet

+0

はい私は本当にそれを印刷しようとしています。長さに乱数を掛けなければならないので、私はそれを 'int'にする必要があります。 (私はユーザーの入力をランダム化するアプリケーションを作ろうとしています)。 –

関連する問題