Я новичок в Android.
Я нашел этот код в своей книге, из которой учусь. Это не объяснено должным образом
Я создал Java-класс Drink
а затем я использовал drinks[] в своей деятельности. При щелчке он передает идентификатор выбранного массива другому действию с использованием намерения.
Теперь в этом другом действии я хочу отобразить название напитка, изображение и описание, которое мы сохранили в массиве.
Я понял, что мы сохранили идентификатор массива в объекте класса Drinks
но почему мы использовали методы получения, чтобы получить имя, описание и изображение.
Они не связаны с массивом?
В них нет кода?
Тогда что происходит на самом деле
Код класса Drinks.java
Class Drinks
{
private String name ;
private String description ;
private int rid ;
public static final Drinks[] drinks = {
new Drinks("Latte", "A couple of espresso shots with steamed milk",
R.drawable.latte),
new Drinks("Cappuccino", "Espresso, hot milk, and a steamed milk foam",
R.drawable.cappuccino),
new Drinks("Filter", "Highest quality beans roasted and brewed fresh",
R.drawable.filter)
};
public Drinks(String name, String description, int rid) {
this.name = name;
this.description = description;
this.rid = rid;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public int getRid() {
return rid;
}
}
-----------------------------------------
Код активности, в котором я использую напитки [] и передаю его идентификатор
listDrinks = findViewById(R.id.listDrinks);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1 ,Drinks.drinks);
listDrinks.setAdapter(adapter);
listDrinks.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(Main2Activity.this , Main3Activity.class);
intent.putExtra("id",id);
startActivity(intent);
}
});
Другое действие, в котором я передаю идентификатор массива и использую методы получения, чтобы установить описание имени и изображение для отображения.
textView = findViewById(R.id.textname);
text_description = findViewById(R.id.text_description);
imageView = findViewById(R.id.photo);
Intent intent= getIntent();
int drinkId = Integer.parseInt(intent.getStringExtra("id"));
Drinks d = Drinks.drinks[drinkId];
textView.setText(d.getName());
text_description.setText(d.getDescription());
imageView.setImageResource(d.getRid())
;
Вы создаете новые объекты внутри Drinks [] drinks, которые будут вызывать конструктор этого класса и устанавливать имя, описание и rid, которые являются частными. Итак, вам нужны функции получения, чтобы получить доступ к этим конкретным объектам, названию и описанию. Вы анализируете только идентификатор объекта, к которому нужно получить доступ во втором действии.