しばらくの間質問されていないので、それはずっと延滞しています!Androidの複数のレイアウトからEditTextの値を取得できない?
私はジョブアイテムを作成することができるアプリケーションを作成しています(新規の行には説明(EditText)、価格(EditText)、現在の行を削除するボタンが含まれていますが、複数の行がある場合は、EditTextフィールドの値を返します。最新の行の値を返します。
「ジョブリストコンテナ」とは別に、ビューは動的に作成されるため、XMLの不足は許されますが、私が達成しようとしている構造は次のとおりです。複数の行も)、送信ボタンをクリックすると、(価格を追加し、DBにジョブを追加)説明と価格の値のすべてを受け取り、それらを処理します。
...、これはコードです私はaddNewJobRow onClickリスナーから呼び出されたために書いています(簡略化のためにまとめて):
private void addJobItem() {
//Create a new row container
final LinearLayout jobRowContainer = new LinearLayout(this);
//Create a new EditText for the Description
final EditText description = new EditText(this);
description.setHint("Description...");
description.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
1.0f
));
//Create an EditText for the Price
final EditText price = new EditText(this);
price.setHint("00.00");
//Create a new button to delete the row
Button delete = new Button(this);
delete.setBackgroundColor(Color.RED);
delete.setText("X");
//Add Description, Price and Delete to the row container
jobRowContainer.addView(description);
jobRowContainer.addView(price);
jobRowContainer.addView(delete);
//Add the Row Container to the Jobs List Container
ll_jobListContainer.addView(jobRowContainer);
//Get the values of the Description and Price, for each row
btn_JobSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < ll_jobListContainer.getChildCount(); i++) {
for(int j = 0; j < jobRowContainer.getChildCount(); j++) {
if (jobRowContainer.getChildAt(i) instanceof EditText){
String descriptionString = description.getText().toString();
String priceString = price.getText().toString();
System.out.println("z! " + descriptionString + " @ " + priceString);
}
}
}
}
});
}
instanceof
を使用して、または使用しないで、FOR
ループをネストした場合としない場合の2回の繰り返しを試しましたが、すべて最新の行が出力されます。
私は複数のジョブ行がある場合、どのように必要なすべての値を取得できますか?
お時間をありがとうとすべてが素敵なスタッフxxxの原因のうち
Garry99さん、ありがとうございました。乾杯! –
助けてくれてうれしいです。私はちょうど私がある場所に '記述'を、別の場所に 'desc'を持っていることに気づいた。修正しました。申し訳ありません。 – Gary99
拡張回答ありがとうございます。私は説明と価格のためにresourceIDを割り当てることができるレイアウトが必要なので、これに似た何かをしましたが、ダミーアイテムとして残しました。私の無知を許してください。しかし、最初の方法がうまくいくので、この追加は何を達成しますか? –