Я использую RecyclerView
в приложении, используя пользовательский адаптер.
Я хочу разобраться с существующим меню RecyclerView
пунктов. Для доступа к ним, как к обычным переменным, чтобы я мог применить определенное условие или отправить их в текстовом сообщении и т. Д. За пределами моего адаптера класса.
Как получить доступ к RecyclerView
элементам?
Матрица кодовых классов:
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
super.onCreate(savedInstanceState);
addItem();
Button button = findViewById(R.id.get_item);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*
I want when I press the button
The items are called
*/
}
});
}
public void addItem() {
List<Shops> shops = new ArrayList<>();
String[] cloth = {"Silk", "Cotton", "Linen"};
String[] wood = {"Sandal", "Jawi", "Pine"};
String[] metal = {"Window", "door", "roof"};
RecyclerView recyclerView = findViewById(R.id.list_shop);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
for (int i = 0; i < cloth.length; i++) {
Shops shopsList = new Shops(cloth[i], wood[i], metal[i]);
shops.add(shopsList);
}
ShopsAdapter adapter = new ShopsAdapter(shops);
recyclerView.setAdapter(adapter);
}
}
код списка классов
public class Shops {
String cloth, wood, metal;
public Shops(String cloth, String wood, String metal) {
this.cloth = cloth;
this.wood = wood;
this.metal = metal;
}
}
Адаптер класса кода
public class ShopsAdapter extends RecyclerView.Adapter<ShopsAdapter.ShopsHolder> {
private List<Shops> shopsList;
public ShopsAdapter(List<Shops> shops) {
this.shopsList = shops;
}
@Override
public ShopsHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View row = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.template_recycler_view, viewGroup, false);
ShopsHolder holder = new ShopsHolder(row);
return holder;
}
@Override
public void onBindViewHolder(ShopsHolder holder, int i) {
Shops shops = shopsList.get(i);
holder.cloth.setText(shops.cloth);
holder.wood.setText(shops.wood);
holder.metal.setText(shops.metal);
}
@Override
public int getItemCount() {
return shopsList.size();
}
class ShopsHolder extends RecyclerView.ViewHolder {
private TextView cloth, wood, metal;
public ShopsHolder(View itemView) {
super(itemView);
cloth = itemView.findViewById(R.id.cloth);
wood = itemView.findViewById(R.id.wood);
metal = itemView.findViewById(R.id.metal);
}
}
}
Если вам нужен код XML, я добавлю его в другой ответ.