У меня есть класс переработчика, имеющий 2 функции типа array-list. эта функция возвращает результат типа arraylist. когда я вызываю эту функцию в моей основной деятельности, это возвращает нулевой массив, и я не знаю почему. это возвращаемый массив, если я добавляю что-то в мой массив, как этот ... result.add ("что-то"), но при добавлении пары это возвращающий нулевой массив это мой класс адаптера:
public class myAdapter extends RecyclerView.Adapter<myAdapter.MyView> {
public ArrayList<String> ex_name;
public ArrayList<Integer> ex_img;
public HashMap<Integer, Pair<Integer, String>> selected = new HashMap<>();
public Context context;
public int index;
public OnItemClick listener;
public myAdapter(ArrayList<String> ex_name, ArrayList<Integer> ex_img, Context context) {
this.ex_name = ex_name;
this.ex_img = ex_img;
this.context = context;
}
public myAdapter() {
}
@NonNull
@Override
public myAdapter.MyView onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view, parent, false);
return new MyView(v);
}
@Override
public void onBindViewHolder(@NonNull myAdapter.MyView holder, int position) {
holder.setIndex(position);
holder.ex_name.setText(ex_name.get(position));
holder.ex_img.setImageResource(ex_img.get(position));
}
@Override
public int getItemCount() {
return ex_name.size();
}
public class MyView extends RecyclerView.ViewHolder {
public TextView ex_name;
public ImageView ex_img;
public Button add, remove;
private int index;
public MyView(@NonNull View itemView) {
super(itemView);
ex_name = itemView.findViewById(R.id.card_exeName);
ex_img = itemView.findViewById(R.id.card_exeImg);
add = itemView.findViewById(R.id.add_btn);
remove = itemView.findViewById(R.id.remove_btn);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
add.setText("Added");
remove.setVisibility(View.VISIBLE);
String name = myAdapter.this.ex_name.get(index);
Integer image = myAdapter.this.ex_img.get(index);
selected.put(image, new Pair<>(image, name));
Log.i("loda", "" + getSelectedNames());
Log.i("loda", "" + getSelectedImages());
}
});
remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
remove.setVisibility(View.INVISIBLE);
add.setText("Add");
Integer image = myAdapter.this.ex_img.get(index);
selected.remove(image);
Log.i("loda", "" + selected);
}
});
}
public void setIndex(int position) {
this.index = position;
}
}
public ArrayList<String> getSelectedNames() {
ArrayList<String> result = new ArrayList<>();
for (Pair<Integer, String> pair : selected.values()) {
result.add(pair.second);
}
return result;
}
public ArrayList<Integer> getSelectedImages() {
ArrayList<Integer> result = new ArrayList<>();
for (Pair<Integer, String> pair : selected.values()) {
result.add(pair.first);
}
return result;
}
}
и это мое основное занятие:
public class exerciseActivity extends AppCompatActivity {
public RecyclerView recycler_view;
public RecyclerView.Adapter adapter;
public ArrayList<String> ex_name;
public ArrayList<Integer> ex_img;
public String select_ex_name;
Intent intent;
TextView exName;
Button next;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exercise);
exName = findViewById(R.id.exe_name);
next = findViewById(R.id.next_btn);
intent = getIntent();
ex_name = new ArrayList<>();
ex_img = new ArrayList<Integer>();
select_ex_name = intent.getStringExtra("Excercise_name");
if (select_ex_name.equals("biceps")) {
exName.setText("Biceps");
ex_name.add("Fat-Grip Hammer Curl");
ex_img.add(R.drawable.bicpes_1);
ex_name.add("EZ-Bar Preacher Curl");
ex_img.add(R.drawable.biceps_2);
ex_name.add("Reverse Curl");
ex_img.add(R.drawable.biceps_3);
ex_name.add("Wide-Grip Curl");
ex_img.add(R.drawable.biceps_4);
ex_name.add("Close-Grip Curl");
ex_img.add(R.drawable.biceps_5);
ex_name.add("Hammer Curl");
ex_img.add(R.drawable.biceps_6);
ex_name.add("Dip");
ex_img.add(R.drawable.biceps_7);
ex_name.add("Behind-the-Back Cable Curl");
ex_img.add(R.drawable.biceps_8);
ex_name.add("Side Curl with Band");
ex_img.add(R.drawable.biceps_9);
} else if (select_ex_name.equals("chest")) {
exName.setText("Chest");
ex_name.add("Barbell Bench Press");
ex_img.add(R.drawable.chest_1);
ex_name.add("Dumbbell Bench Press");
ex_img.add(R.drawable.chest_2);
ex_name.add("Smith Machine Incline Press");
ex_img.add(R.drawable.chest_3);
ex_name.add("Incline Dumbbell Flye");
ex_img.add(R.drawable.chest_4);
ex_name.add("Cable Crossover");
ex_img.add(R.drawable.chest_5);
ex_name.add("Incline Dumbbell Press");
ex_img.add(R.drawable.chest_6);
ex_name.add("Chest Press Machine");
ex_img.add(R.drawable.chest_7);
ex_name.add("Dumbbell Flye");
ex_img.add(R.drawable.chest_8);
ex_name.add("Low-Cable Crossover");
ex_img.add(R.drawable.chest_9);
} else if (select_ex_name.equals("back")) {
exName.setText("Back");
ex_name.add("Deadlift");
ex_img.add(R.drawable.back_1);
ex_name.add(" Incline Dumbbell Row");
ex_img.add(R.drawable.back_2);
ex_name.add("Trap-Bar Deadlift");
ex_img.add(R.drawable.back_3);
ex_name.add("Cable Row");
ex_img.add(R.drawable.back_4);
ex_name.add("Yates Row");
ex_img.add(R.drawable.back_5);
ex_name.add(" Bentover Row to Neck");
ex_img.add(R.drawable.back_6);
ex_name.add("Close-Grip Pull-Down");
ex_img.add(R.drawable.back_7);
ex_name.add(" Single-Arm Dumbbell Row");
ex_img.add(R.drawable.back_8);
} else if (select_ex_name.equals("triceps")) {
exName.setText("Triceps");
ex_name.add("Diamond Pushup");
ex_img.add(R.drawable.tri_1);
ex_name.add("Neutral-Grip Triceps Extension");
ex_img.add(R.drawable.tri_2);
ex_name.add("Reverse Curl");
ex_img.add(R.drawable.tri_3);
ex_name.add("Pullover/Triceps Extension");
ex_img.add(R.drawable.tri_4);
ex_name.add("Decline Triceps Extension");
ex_img.add(R.drawable.tri_5);
ex_name.add("Close-Grip Bench Press");
ex_img.add(R.drawable.tri_6);
ex_name.add(" Lying Triceps Extension");
ex_img.add(R.drawable.tri_7);
ex_name.add("Underhand Kickback");
ex_img.add(R.drawable.tri_8);
} else if (select_ex_name.equals("legs")) {
exName.setText("Legs");
ex_name.add("Leg Press");
ex_img.add(R.drawable.legs1);
ex_name.add("Pause Squat");
ex_img.add(R.drawable.leg_2);
ex_name.add("Reverse Lunge");
ex_img.add(R.drawable.leg_3);
ex_name.add("Dumbbell Squat");
ex_img.add(R.drawable.leg_4);
ex_name.add("Barbell Hip Thrust");
ex_img.add(R.drawable.leg_5);
ex_name.add("Seated Calf Raise");
ex_img.add(R.drawable.leg_6);
ex_name.add("Front Squat");
ex_img.add(R.drawable.leg_7);
ex_name.add("Romanian Deadlift");
ex_img.add(R.drawable.leg_8);
ex_name.add("Squart");
ex_img.add(R.drawable.leg_9);
} else if (select_ex_name.equals("shoulder")) {
exName.setText("Shoulder");
ex_name.add("Barbell Overhead Press");
ex_img.add(R.drawable.shoulder_1);
ex_name.add("Standing Dumbbell Fly");
ex_img.add(R.drawable.shoulder_2);
ex_name.add(" Face Pull");
ex_img.add(R.drawable.shoulder_3);
ex_name.add("High Pull");
ex_img.add(R.drawable.shoulder_4);
ex_name.add("Seated Dumbbell Clean");
ex_img.add(R.drawable.shoulder_5);
ex_name.add(" Clean and Press");
ex_img.add(R.drawable.shoulder_6);
ex_name.add("Snatch-Grip High Pull");
ex_img.add(R.drawable.shoulder_7);
ex_name.add("Machine Shoulder Press");
ex_img.add(R.drawable.shoulder_8);
}
recycler_view = findViewById(R.id.recyclerView);
recycler_view.setHasFixedSize(true);
recycler_view.setLayoutManager(new LinearLayoutManager(this));
adapter = new myAdapter(ex_name, ex_img, exerciseActivity.this);
recycler_view.setAdapter(adapter);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myAdapter ad = new myAdapter();
ArrayList<String> selectedNames = ad.getSelectedNames();
Log.i("data", "" + selectedNames);
ArrayList<Integer> selectedImages = new myAdapter().getSelectedImages();
Log.i("data", "" + selectedImages);
}
});
}
}