У меня есть активность студии Android, которая содержит RecyclerView, адаптер и невидимую кнопку внизу активности. Каждый itemView внутри RecyclerView также имеет CheckBox. Внутри моего класса адаптера у меня инициализирован мой флажок и есть что-то вроде - если checkbox.isChecked - тогда сделайте общедоступным static int num = 1 else num = 2; Затем эта статическая переменная отправляется в мой Activity_main, где моя нижняя кнопка, которая мне нужна, чтобы стать видимой, может быть видна с помощью оператора if, который говорит: if Adapter.num == 1 then button.MakeVisible(true);
Проблема в том, что он находится в моем Oncreate, который вызывается только после выполнения действия. Статический номер отправляется без проблем, но активность не обновляется, чтобы показать это. Мне нужно перезапустить действие, чтобы кнопка действительно стала видимой.
Класс адаптера
public static int p = 0;
@Override
public void onBindViewHolder(@NonNull final Adapter.CustomViewHolder holder,
final int position) {
addedCars = new ArrayList<>();
holder.car.setText(mCars.get(position).getCarName());
holder.mCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(holder.mCheckBox.isChecked()){
Log.d("tag1", "checked");
addedCars.add(mCars.get(position));
String x = Integer.toString(addedCars.size());
Log.d("tag1", x );
p = 1;
holder.mButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
else {
Log.d("tag1", "unchecked");
addedCars.remove(mCars.get(position));
p = 2;
}
}
});
}
Основной класс деятельности
public class MainActivity extends AppCompatActivity {
RecyclerView mRecyclerView;
Adapter mAdapter;
RecyclerView.LayoutManager mLayoutManager;
Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = findViewById(R.id.RecyclerView);
mButton = findViewById(R.id.button);
ArrayList<Car> cars = new ArrayList<>();
cars.add(new Car("Toyota"));
cars.add(new Car("Ford"));
cars.add(new Car("Tesla"));
mAdapter = new Adapter(cars);
mRecyclerView.setAdapter(mAdapter);
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setHasFixedSize(true);
if (mAdapter.p == 1){
mButton.setVisibility(View.VISIBLE);
}
}
}