亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在第二個活動中分別收集和顯示動態 editTexts 的值

在第二個活動中分別收集和顯示動態 editTexts 的值

溫溫醬 2024-01-28 15:59:30
我創建了三個編輯文本輸入和另一組輸入,當您單擊“添加更多”按鈕時應動態添加這些輸入。我想收集從第二個活動提交的數據,并根據單擊“添加更多”按鈕的次數將它們分開我的問題是,當我單擊“提交”按鈕時,我可以獲取第二個活動中靜態編輯文本字段的初始值,但無法獲取動態編輯文本的值。我將不勝感激所提供的任何幫助謝謝Activity.java 添加更多按鈕public void onAddField(View v) {    dynamicEditTexts = new ArrayList<EditText>();//added this    LayoutInflater inflater = (LayoutInflater)     getSystemService(Context.LAYOUT_INFLATER_SERVICE);    final View rowView = inflater.inflate(R.layout.field, null);    // Add the new row before the add field button.    parentLinearLayout.addView(rowView, parentLinearLayout.getChildCount() - 1);    EditText dynamicText = new EditText(this);//added this   // EditText dynamicText = rowView.findViewById(R.id.dynamic_layout);    dynamicEditTexts.add(dynamicText);}提交按鈕public void getValue(View view) {    Intent intent = new Intent(MainActivity.this, Output.class);    titleM = findViewById(R.id.title_main);    productNameM = findViewById(R.id.product_name_main);    productNumberM = findViewById(R.id.product_number_main);    //getting the texts    String Title = titleM.getText().toString();    String PName = productNameM.getText().toString();    double PNumber =     Double.parseDouble(productNumberM.getText().toString());    // ******** FOR THE DYNAMIC EDITEXT FIELDS ************    String[] inputItems = new String[dynamicEditTexts.size()];    String string = String.valueOf(dynamicEditTexts.size());    for(int j = 0; j <dynamicEditTexts.size(); j++){        inputItems[j] = dynamicEditTexts.get(j).getText().toString();        intent.putExtra("dynamicData", inputItems[j]);  }    intent.putExtra("title", Title);    intent.putExtra("pname", PName);    intent.putExtra("pnumber", PNumber);    startActivity(intent);    finish();    }}
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

在方法中收集動態 edittext 字段值時,您將覆蓋之前在意圖附加中輸入的值getValue。


您需要做的是收集列表、數組或類似數據結構中的所有字符串,并將它們放入 extras 中。因此,要實現這一目標,您應該重寫您的for邏輯,如下所示:


for (int j = 0; j <dynamicEditTexts.size(); j++) {

    inputItems[j] = dynamicEditTexts.get(j).getText().toString();

}

intent.putExtra("dynamicData", inputItems);

由于您將數據作為字符串數組注入,因此您還必須將其作為字符串數組讀回,因此您的 Output.java 將如下所示:


String[] dynamicItems = collectDynamicData.getStringArrayExtra("dynamicData");

并將其轉換為字符串列表:


ArrayList<String> alldynamicTexts = new ArrayList<>(Arrays.asList(dynamicItems));

當然,您可以首先將它們作為字符串數組列表注入,然后使用 讀回它們collectDynamicData.getStringArrayListExtra("dynamicData"),選擇適合您的任何方法。


希望能幫助到你。


查看完整回答
反對 回復 2024-01-28
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號