Как обновить данные в спиннере которые добавляются с помощью диалога?

195
28 ноября 2018, 11:30

Есть:

 adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, directories);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    final Spinner spinner = (Spinner) v.findViewById(R.id.spinner);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                                   int position, long id) {
            ((TextView) parent.getChildAt(0)).setTextSize(18);
            mDirect.setName_directory(spinner.getSelectedItem().toString());
        }

и есть:

mEditDirectory.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
            View editView = layoutInflater.inflate(R.layout.editactivity, null);
            AlertDialog.Builder mDialogBuilder = new AlertDialog.Builder(getActivity());
            mDialogBuilder.setView(editView);
            final EditText userInput = (EditText) editView.findViewById(R.id.input_text);
            mDialogBuilder.setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    mDatabaseDirectory = new DirectBaseHelper(getActivity().getApplicationContext()).getWritableDatabase();
                    ContentValues values = new ContentValues();
                    if (userInput.getText().toString().isEmpty()) {
                        Toast.makeText(getActivity(), "Категория не создана", Toast.LENGTH_SHORT).show();
                    } else {
                        values.put(DirectoryTable.Colums.NAMEDIR, userInput.getText().toString());
                        mDatabaseDirectory.insert(DirectoryTable.DIRECTORY_NAME, null, values);
                                Toast.makeText(getActivity(), "Новая категория создана",Toast.LENGTH_SHORT).show();
                    }

Подскажите как обновить адаптер, знаю что c помощью adapter.notifyDataSetChanged(); но куда его засунуть чтобы работал, после добавления записи в диалоге. Думал в диалог, но нет, в onResume(), тоже нет...

Answer 1

Для того, чтобы произвести действия после закрытия диалога, используйте интерфейс DialogInterface.OnDismssListener.

Имплементируете этот интерфейс и реализуете его метод onDismiss() - данный колбэк будет вызван, когда диалоговое окно будет закрыто. В вашем случае тут вы можете вызвать обновление адаптера.

READ ALSO
Объединение нескольких таблиц SQL-бд SQL или Java

Объединение нескольких таблиц SQL-бд SQL или Java

Возникла задача и не знаю с какой стороны к ней подступитьсяЕсть Postgre В БД есть 9 таблиц, в некоторых из них поля совпадают, в некоторых - нет

169
Ошибка при запуске Java Web приложения

Ошибка при запуске Java Web приложения

Всем привет, есть сайт, при попытке запустить с консоли команду java -jar target/dependency/webapp-runnerjar --session-store memcache target/*

153
Как сделать адаптивный svg?

Как сделать адаптивный svg?

Необходимо сделать адаптивный SVG

239
Media запрос под моб устройства

Media запрос под моб устройства

Есть media запрос под оптимизацию картинки на мобустройства

187