Как получить динамические созданные данные EditText во фрагменте?

#java #android #dynamiclayout

#java #Android #dynamiclayout

Вопрос:

Я работаю над приложением для Android, в котором я создаю динамический макет на фрагменте. Когда пользователь нажимает на кнопку, чтобы получить данные из элемента макета, я получаю ошибку исключения нулевого указателя.

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.fragment_schedule, container, false);

        parentLinearLayout=(LinearLayout) view.findViewById(R.id.parent_linear_layout);
        add_field_button=(TextView) view.findViewById(R.id.add_field_button);
        txtDate=(TextView) view.findViewById(R.id.txtDate);
        txtTime=(TextView) view.findViewById(R.id.txtTime);
        btnSubmit=(Button) view.findViewById(R.id.btnSubmit);

        buttomclick(view);


        return view;


    }
 

Я вызываю функцию ниже, чтобы получить данные из динамического макета, и я получаю исключение нулевого указателя для EditText.

     ArrayList getEditTextList()
    {

        ArrayList<String> list = new ArrayList<String>();
        int size = parentLinearLayout.getChildCount();

        for (int i=0 ; i < size ; i  )
        {
            View view = parentLinearLayout.getChildAt(i);
            EditText edtUsername = view.findViewById(R.id.edtVisitorname);
            list.add(edtUsername.getText().toString());
            String a ="";
        }
        return list;
    }
 

При нажатии на кнопку ниже я добавляю динамический макет.

 add_field_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onAddField(v);
            }
        });


public void onAddField(View v) {
        LayoutInflater inflater=(LayoutInflater) getActivity().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);
    }
 

Комментарии:

1. Не могли бы вы поделиться NullPointerException, пожалуйста?

2. java.lang. Исключение NullPointerException: попытка вызвать виртуальный метод ‘android.text.Editable android.widget. EditText.getText()’ для нулевой ссылки на объект