Java 如何保存android中动态添加的多个EditText中的数据?

Java 如何保存android中动态添加的多个EditText中的数据?,java,android,android-layout,android-edittext,Java,Android,Android Layout,Android Edittext,我有一些编辑文本,我正试图将它们的值保存到数组列表,但是我的编辑文本是通过使用添加按钮来添加的,该按钮添加了线性布局,编辑文本位于正在创建的线性布局内 通常,保存固定的数量的EditText会很容易,但是如何保存连续的数量的EditText呢。我正在下面的方法createNewLinearLayout()中添加LinearLayout,我想保存来自这些LinearLayout的编辑文本的输入 我该怎么做 我的布局 }我建议: for (int i =0;i<LinearLa

我有一些编辑文本,我正试图将它们的保存到数组列表,但是我的编辑文本是通过使用添加按钮来添加的,该按钮添加了线性布局,编辑文本位于正在创建的线性布局内

通常,保存固定的数量的EditText会很容易,但是如何保存连续的数量的EditText呢。我正在下面的方法
createNewLinearLayout()
中添加LinearLayout,我想保存来自这些LinearLayout的编辑文本的输入

我该怎么做

我的布局

}我建议:

        for (int i =0;i<LinearLayout.getChildCount();i++)
        {

            EditText edt= new EditText (this);
            edt = LinearLayout.getChildAt(i);
            YourAarraylist[i]=edt.getText().toString();

        }

用于(int i=0;最好的选择是使用Recycler视图。从Recycler视图获取数据非常容易。如果您需要Recycler视图实现代码,请告诉我,我会与您共享。是的,您可以共享Recycler视图实现代码吗?另外,Recycler视图和列表视图之间有什么区别?非常感谢h、 我认为这将是我遇到的问题的一个很好的解决方案。我已经实现了它,现在我只需要测试它。
private LinearLayout createNewLinearLayout(){
    final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    lparams.gravity = Gravity.CENTER_HORIZONTAL;

    final ViewGroup.LayoutParams btnParam = plusBtn.getLayoutParams();

    final ViewGroup.LayoutParams textParam = counterTxt.getLayoutParams();

    final LinearLayout.LayoutParams deleteParam = new LinearLayout.LayoutParams(delete.getLayoutParams());
    deleteParam.gravity = Gravity.CENTER_HORIZONTAL;

    final LinearLayout.LayoutParams editParams = new LinearLayout.LayoutParams(actionEditText.getLayoutParams());
    editParams.gravity = Gravity.CENTER_HORIZONTAL;

    final LinearLayout.LayoutParams durationParams = new LinearLayout.LayoutParams(durationEditText.getLayoutParams());
    durationParams.gravity = Gravity.CENTER_HORIZONTAL;

    LinearLayout.LayoutParams line = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,TypedValue.COMPLEX_UNIT_SP, 1);
    line.setMargins(0,15,0,0);

    final LinearLayout newLinear = new LinearLayout(this);
    newLinear.setLayoutParams(lparams);

    final LinearLayout combined = new LinearLayout(this);
    combined.setLayoutParams(lparams);

    final Button plus = new Button(this);
    plus.setLayoutParams(btnParam);

    final Button minus = new Button(this);
    minus.setLayoutParams(btnParam);

    final TextView count = new TextView(this);
    count.setLayoutParams(textParam);

    final EditText editText = new EditText(this);
    editText.setLayoutParams(editParams);
    editText.setHint("Action To Record");
    editText.setGravity(Gravity.CENTER_HORIZONTAL);

    final View v = new View(this);
    v.setLayoutParams(line);
    v.setBackgroundColor(Color.parseColor("#B3B3B3"));

    final EditText duration = new EditText(this);
    duration.setLayoutParams(durationParams);
    duration.setHint("Duration of Action");
    duration.setGravity(Gravity.CENTER_HORIZONTAL);

    final Button delete = new Button(this);
    delete.setLayoutParams(deleteParam);
    delete.setText("delete");
    delete.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v) {
            linearLayoutText.removeView(combined);
        }
    });

    plus.setText("+");
    plus.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
    plus.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v) {
            counting[0]++;
            count.setText(counting[0] + "");
        }
    });

    minus.setText("-");
    minus.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
    minus.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v) {
            if (counting[0] > 0)
                counting[0]--;
            count.setText(counting[0] + "");
        }
    });

    count.setTextSize(TypedValue.COMPLEX_UNIT_SP, 45);

    newLinear.setOrientation(LinearLayout.HORIZONTAL);
    newLinear.setGravity(Gravity.CENTER_HORIZONTAL);

    combined.setOrientation(LinearLayout.VERTICAL);
    combined.setGravity(Gravity.CENTER_HORIZONTAL);

    newLinear.addView(minus);
    newLinear.addView(count);
    newLinear.addView(plus);

    combined.addView(editText);
    combined.addView(duration);
    combined.addView(newLinear);
    combined.addView(delete);
    combined.addView(v);

    counting[0] = 0;
    count.setText(counting[0] + "");

    return combined;
}
        for (int i =0;i<LinearLayout.getChildCount();i++)
        {

            EditText edt= new EditText (this);
            edt = LinearLayout.getChildAt(i);
            YourAarraylist[i]=edt.getText().toString();

        }
for (int i =0;i<LinearLayout.getChildCount();i++)
    {
        LinearLayout secondLayout= (LinearLayout) LinearLayout.getChildAt(i);
     //   and then:

        EditText edt= new EditText (this);
        edt = secondLayout.getChildAt(indexofyoutEdittext);//You should know this because it's the order of the views you add in your layout

        YourAarraylist[i]=edt.getText().toString();

    }