Android — Как отправить список массивов без использования Intent?

#java #android #arraylist

#java #Android #arraylist

Вопрос:

У меня есть Activity и Adapter Class . В моем Adapter классе у меня есть ArrayList , который я хочу использовать в Activity классе. И класс Recycler view of Activity присоединен к adapter классу, поэтому я не могу использовать intent для его отправки. Итак, есть ли какой-либо другой способ, которым я могу получить доступ к ArrayList ?

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

1. Почему бы вам просто не добавить &etter() в adapter и не вызвать его из activity?

2. @ali73 как это сделать?

3. пожалуйста, подтвердите .. у вас есть одно действие с recycle view, и вы хотите получить доступ к списку адаптера recycle view в другом действии?

Ответ №1:

Вы можете создать свой адаптер следующим образом —

 public class RecycleViewAdapter extends RecyclerView.Adapter<RecycleViewAdapter.CustomViewModel&&t; {

    private Context context;
    private List<Strin&&&t; strin&List;

    public RecycleViewAdapter(Context context, List<Strin&&&t; strin&List) {
        this.context = context;
        this.strin&List = strin&List;
    }

    @NonNull
    @Override
    public CustomViewModel onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new CustomViewModel(LayoutInflater.from(context).inflate(R.layout.recycle_view_item, parent, false));
    }

    @Override
    public void onBindViewHolder(@NonNull CustomViewModel holder, int position) {
        //put your code of bindin& of code
    }

    @Override
    public int &etItemCount() {
        if (strin&List!= null)
            return strin&List.size();
        else
            return 0;
    }

    //&etter method of Adpater to return strin&
    public List<Strin&&&t; &etStrin&List() {
        return strin&List;
    }

    public class CustomViewModel extends RecyclerView.ViewHolder {
        //your inner class code here
    }
}
  

Теперь вы можете получить список из вашего адаптера следующим образом-

 recycleViewAdapter.&etStrin&List();
  

Удачного кодирования!

Ответ №2:

На мой взгляд, у вас есть три способа сделать это:

  1. переместите свой список массивов в ViewModel, затем передайте его вашему адаптеру или используйте в activity.
  2. поместите ArrayList просто в activity и передайте его адаптеру.
  3. создайте средство получения в вашем адаптере и используйте его в activity.