Получить переменную в Адаптере из Activity

Рейтинг: 0Ответов: 0Опубликовано: 07.07.2023

Не получается получить переменную в Адаптере из Activity. Имеется класс SmetaFull.java В нем есть переменная типа String smeta_ident;

Как я могу получить эту переменную в Адаптере?

SmetaFull.java

public class SmetaFull extends AppCompatActivity {
private RecyclerView mRecyclerView;
...
String smeta_ident;
...


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.smeta_full);

    ...

    try {
        receivedPersonId = getIntent().getLongExtra("USER_ID", 0);
        smeta_name = getIntent().getStringExtra("SMETA_NAME");
        smeta_ident = getIntent().getStringExtra("SMETA_IDENT"); //Переменная, которую нужно получить в AdapterSmetaFull.java
    } catch (Exception e) {
        e.printStackTrace();
    }
    setTitle(smeta_name);

    full_result = findViewById(R.id.full_result);
    net_punktov = findViewById(R.id.net_punktov);
    mRecyclerView = findViewById(R.id.recycler_view);
    mRecyclerView.setHasFixedSize(true);
    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(mLayoutManager);
    populaterecyclerView();

}
private void populaterecyclerView() {
    DatabaseAccessSmeta dbHelper = new DatabaseAccessSmeta(this);
    AdapterSmetaFull adapter = new AdapterSmetaFull(dbHelper.SmetaGo(smeta_ident), this);
    mRecyclerView.setAdapter(adapter);
    if (net_punktov != null) {
        if (adapter.getItemCount() == 0) {
            fut.setVisibility(View.GONE);
            net_punktov.setVisibility(View.VISIBLE);
            mRecyclerView.setVisibility(View.GONE);
        } else {
            fut.setVisibility(View.VISIBLE);
            net_punktov.setVisibility(View.GONE);
            mRecyclerView.setVisibility(View.VISIBLE);

            ItemTouchHelper.Callback callback = new RecyclerRowMoveCallback(adapter);
            ItemTouchHelper touchHelper = new ItemTouchHelper(callback);
            touchHelper.attachToRecyclerView(mRecyclerView);
        }
    }
    fullsumma = dbHelper.getSumma(smeta_ident);
    fullsumma_obrez = new DecimalFormat("###,###.##").format(fullsumma);
    full_result.setText(fullsumma_obrez);

    dbHelper.close();
}

...

}

AdapterSmetaFull.java

public class AdapterSmetaFull extends RecyclerView.Adapter<AdapterSmetaFull.ViewHolder> implements RecyclerRowMoveCallback.RecyclerViewRowTouchHelperContract{
private final List<PersonSmetaPunkt> mPeopleList;
private final Context mContext;

public AdapterSmetaFull(List<PersonSmetaPunkt> myDataset, Context context) {
    mPeopleList = myDataset;
    mContext = context;
}
@NonNull
@Override
public AdapterSmetaFull.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                      int viewType) {

    LayoutInflater inflater = LayoutInflater.from(
            parent.getContext());
    View v =
            inflater.inflate(R.layout.smeta_list_full, parent, false);
    return new ViewHolder(v);
}

@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {

    final PersonSmetaPunkt person = mPeopleList.get(position);
    holder.num.setText(Integer.toString(position + 1));
    holder.vd_rabot.setText(person.getVd_rabot());
    holder.kol.setText(person.getKol());
    holder.izm.setText(person.getValuta());
    holder.zena.setText(person.getZena());
    holder.valuta.setText(person.getValuta());
    holder.result.setText(person.getSlogenie());
}

@Override
public int getItemCount() {
    return mPeopleList.size();
}

@Override
public void onRowMoved(int fromPosition, int toPosition) {
    if (fromPosition < toPosition) {
        for (int i = fromPosition; i < toPosition; i++) {
            Collections.swap(mPeopleList, i, i + 1);
        }
    } else {
        for (int i = fromPosition; i > toPosition; i--) {
            Collections.swap(mPeopleList, i, i - 1);
        }
    }
    notifyItemMoved(fromPosition, toPosition);

    String vd_rabot_from = mPeopleList.get(fromPosition).getVd_rabot();
    String kol_from = mPeopleList.get(fromPosition).getKol();
    String zena_from = mPeopleList.get(fromPosition).getZena();
    String valuta_from = mPeopleList.get(fromPosition).getValuta();
    String slog_from = mPeopleList.get(fromPosition).getSlog();

    String vd_rabot_to = mPeopleList.get(toPosition).getVd_rabot();
    String kol_to = mPeopleList.get(toPosition).getKol();
    String zena_to = mPeopleList.get(toPosition).getZena();
    String valuta_to = mPeopleList.get(toPosition).getValuta();
    String slog_to = mPeopleList.get(toPosition).getSlog();

    final DatabaseAccessSmeta databaseAccessSmeta = DatabaseAccessSmeta.getInstance(mContext);
    databaseAccessSmeta.open();
    DatabaseAccessSmeta db = new DatabaseAccessSmeta(mContext);

    PersonSmetaUpdate fromUpdatedPerson = new PersonSmetaUpdate(vd_rabot_from, kol_from, zena_from, valuta_from, slog_from);
    PersonSmetaUpdate toUpdatedPerson = new PersonSmetaUpdate(vd_rabot_to, kol_to, zena_to, valuta_to, slog_to);

    db.updateSwap(toPosition, toUpdatedPerson);
    db.updateSwap(fromPosition, fromUpdatedPerson);

    db.close();
}

@Override
public void onRowSelected(ViewHolder myViewHolder) {
    myViewHolder.cardView.setCardBackgroundColor(Color.GRAY);
}

@SuppressLint("NotifyDataSetChanged")
@Override
public void onRowClear(ViewHolder myViewHolder) {
    myViewHolder.cardView.setCardBackgroundColor(Color.parseColor("#12dddd"));
    notifyDataSetChanged();
}
public static class ViewHolder extends RecyclerView.ViewHolder {

    public TextView num;
    public TextView vd_rabot;
    public TextView kol;
    public TextView izm;
    public TextView zena;
    public TextView valuta;
    public TextView result;
    public View layout;
    public CardView cardView;

    public ViewHolder(View v) {
        super(v);
        layout = v;
        num = v.findViewById(R.id.num);
        vid_rabot = v.findViewById(R.id.vd_rabot);
        izm = v.findViewById(R.id.izm);
        kol = v.findViewById(R.id.kol);
        zena = v.findViewById(R.id.zena);
        valuta = v.findViewById(R.id.valuta);
        result = v.findViewById(R.id.result);
        cardView = itemView.findViewById(R.id.cardView);
    }
}

Как передать переменную типа String smeta_ident из SmetaFull.java в AdapterSmetaFull.java?

Ответы

Ответов пока нет.