簡體   English   中英

如何在android中動態添加edittext?

[英]How to add edittext dynamically in android?

如何在適配器中動態添加edittext?

我有一個適配器,我正在從中創建編輯文本供用戶動態輸入數據。

我將從服務器收到的所有從 Json 創建的編輯文本存儲在一個列表中。 現在我什至必須為用戶提供額外的編輯文本以在按鈕單擊時添加動態/自定義數據?

我該怎么做?

    ArrayList<EditText> list = new ArrayList<>();
    list.add(holder.editText);

我將首先使用這樣的警告框從用戶那里獲取編輯文本的標題/提示:

addField.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context, R.style.AlertDialogStyle);
            alertDialog.setMessage("");


            final EditText input = new EditText(context);
            input.setGravity(Gravity.CENTER);
            input.setHint("Enter Title for custom field");

            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT);
            input.setLayoutParams(lp);
            alertDialog.setView(input);
            alertDialog.setIcon(R.drawable.logo);

            alertDialog.setPositiveButton("Set",
                    new DialogInterface.OnClickListener()
                    {
                        public void onClick(DialogInterface dialog, int which)
                        {
                            list.add(holder.editText); //**App Crashes while doing this**
                        }
                    });

            alertDialog.setCancelable(false).show();
        }
    });

編輯文本未添加到列表中,並且應用程序在單擊警報框的 SET 時崩潰

我認為您必須至少提供一個用於 XML 焦點的 editText。 然后在 java 中,您可以創建 editTexts 並以編程方式添加參數等。此源代碼對我有用:

EditText editText = new EditText(context);
            editText.setLayoutParams(layoutParamsForEdittext);
            editText.setBackground(context.getResources().getDrawable(R.drawable.bg_rounded_grey_border));
            editText.setId(surveyAnswers.getId());
            editText.setPadding(8, 8, 8, 8);
            editText.setScrollContainer(true);
            editText.setTextSize(16);
            editText.setInputType(InputType.TYPE_CLASS_NUMBER);
            editText.setFilters(new InputFilter[]{filter, new InputFilter.LengthFilter(10)});
            editText.setGravity(Gravity.TOP);
            editText.setHintTextColor(context.getResources().getColor(R.color.colorTextHint));
            editText.setHint(surveyAnswers.getText());
          
            linearLayoutShelfShareAnswer.addView(editText);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM