2016-05-11 11 views
0

私はグレーディングアプリを作っていますが、基本的に、グレード(数字)を入力できる編集フィールド(番号フィールド)、またはグレードごとに複数のフィールドを入力できますか?しかし、私は平均の等級を計算したいと言うと、私の編集フィールドが配列にない場合、私はフィールドの各値をidで調べなければならなくなり、コードが長すぎるようになります。だから、各編集フィールドから値を取る配列が必要なので、2つのフィールドを編集し、最初に4を入力し、2番目に6を入力すると、配列は{4,6}になります。私はアンドロイド開発の初心者ですが、私は確かなJavaの経験があります。編集テキストの各入力をアンドロイドで配列の値にする方法は?

+0

1つの可能性は、onClickをキャッチし、onClickListener内にeditText.getText()を置く各EditTextの隣にボタンを追加することです.ArrayList内のToString()の値 –

答えて

0

各EditTextは独自の値フィールドを持つ独自のオブジェクトであるため、ここで行うことができるのはあまりありません。ですから、ある程度、各EditTextを参照する必要があります。

リスト内の各EditTextは、少なくともメンバー変数として追跡できます。そうすれば、あなたはあなたの活動の中で一度各編集テキストへの参照を取得する必要があります。次に、平均化のためにコレクションを参照する必要がある場合、または他のものを参照する必要がある場合は、.getText()を呼び出すリストを反復するだけです。特定の編集テキストを参照する必要がある場合は、別のメンバー変数に別の参照を格納するか、idまたは設定したタグでリスト内を参照してください(タグの詳細については、hereを参照してください)。

+0

私は1445の入力を受け取り、私は配列{1,4,4,5}を作る方法を知っていますが、その入力が単一のEditTextにある場合のみですので、数字の間に自動スペースを入れる方法があります。それは1445ですが、それは1 4 4 5でしょうか?入力できる入力は1,2,3,4,5です。そうすれば視覚的に良くなるでしょう。 Btwありがとう:) –

0

たぶん、数値のリストとのHashMap内の各EDITTEXTを初期化し、このような数値のリストに値を追加して取得するのEditTextの参照を使用します。あなたがのEditTextを初期化した場合、あなたは可能性が

final Map<EditText, List<Integer>> editTexts = HashMap<EditText, List<Integer>>(); 

私はそれをテストしていませんが、これは有効な戦略かもしれません。

関連する問題