Добавление элементов в ListView во фрагменте - PullRequest
0 голосов
/ 21 января 2020

Я хочу добавить элементы в ListView через editText, но когда я запускаю свой код, он не работает.

public class EventosFragment extends Fragment {
private ListView lista;
private Button boton;
EditText editText;
ArrayList<String> arrayList;
ArrayAdapter<String> adapter;

public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_eventos, container, false);

    String[] Lista = {};
    ListView listView = (ListView) view.findViewById(R.id.Lista);
    arrayList = new ArrayList<>(Arrays.asList(Lista));
    adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,arrayList);
    listView.setAdapter(adapter);

    editText = (EditText) view.findViewById(R.id.edittxt);
    Button btnAdd = (Button) view.findViewById(R.id.Aceptar);
    btnAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String Aceptar = editText.getText().toString();
            arrayList.add(Aceptar);
        }
    });

    return view;
}
}

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

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Просто добавьте notifyDataSetChanged в onclick метод. Ваши данные успешно добавлены в arraylist, но ваш адаптер не знает об этом, вы уведомили адаптер. Просто так

 arrayList.add(Aceptar);
 //this will notify the adapter whole is changed
 adapter.notifyDataSetChanged();
0 голосов
/ 21 января 2020

Используйте метод адаптера notifyDataSetChanged () после добавления элемента в массив.

btnAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String Aceptar = editText.getText().toString();
            arrayList.add(Aceptar);
            adapter.notifyDataSetChanged();
        }
    });

Надеюсь, это поможет !!

...