Как я могу передать ArrayList строк между классом и действием? - PullRequest
0 голосов
/ 09 ноября 2019

У меня проблема с передачей ArrayList<String> между Class и Activity. Я знаю, что могу использовать Intent для передачи массива между Activities, но я не знаю, как это сделать с Class и Activities. Пожалуйста, помогите

это мой класс


public class MultipleChoiceDialogFragment extends DialogFragment implements Serializable {



    public interface onMultiChoiceListener{
        void onPositiveButtonClicked(String[] list , ArrayList<String> selectedItemList);
        void  onNegativeButtonClicked()
;
    }

    onMultiChoiceListener mlistner;

    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        try {
            mlistner = (onMultiChoiceListener) context;
        } catch (Exception e) {
            e.printStackTrace();
            throw new ClassCastException(getActivity().toString()+"onMultiChoiceListener must implemented");
        }
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {

        final ArrayList<String> selectedItemList = new ArrayList<>();

       // Intent i = new Intent(getContext(),MultipleChoiceDialogFragment.class);
     //   i.putStringArrayListExtra("arrayfinal",selectedItemList);

        AlertDialog.Builder mbuilder = new AlertDialog.Builder(getActivity());
        final String[] list = getActivity().getResources().getStringArray(R.array.selectableRole);
        mbuilder.setTitle("Chose Role").setMultiChoiceItems(list, null, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i, boolean b) {
                if (b){
                    selectedItemList.add(list[i]);

                }else {
                    selectedItemList.remove(list[i]);

                }


            }
        })
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int i) {
                        mlistner.onPositiveButtonClicked(list, selectedItemList);

                    }
                })
                .setNegativeButton("Dismiss", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        mlistner.onNegativeButtonClicked();

                    }
                });

        return mbuilder.create();


    }



}

Я хочу использовать окончательный список в другой деятельности

1 Ответ

0 голосов
/ 09 ноября 2019

В вашей деятельности по вызову:

ArrayList<String> finalList = new ArrayList<String>();
Intent intent = new Intent(this, targetActivity.class);
intent.putExtra("FINALLIST", finalList);
startActivity(intent);

В onCreate () целевой операции:

ArrayList<String> finalList = (ArrayList<String>) getIntent().getSerializableExtra("FINALLIST");

// используйте finalList, как вы хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...