Я практикую этот код из head First Android Development . Здесь, если я нажму на Drink
в первом просмотре списка, мне понадобится и второе представление списка, где данные отображаются как com.hfad.starbuzz.Drink@22c6250
Может ли кто-нибудь указать, почему вместо этого данные отображаются в виде списка?
1-я ссылка для просмотра списка
2-й вид списка выглядит следующим образом
1-й один чистый класс Java для хранения значений массива и конструкторов.
package com.hfad.starbuzz;
public class Drink {
private String name; private String description; private int imgresourcesId;
public Drink(String name, String description, int imgresourcesId) {
this.name = name;
this.description = description;
this.imgresourcesId = imgresourcesId; }
public static final Drink [] drinks={
new Drink("Latte", "Acouple of espresso shots with steamed milk ",
R.drawable.latte),
new Drink("Cupuuccino", "cup what is chino,, no ide ",
R.drawable.cappuccino),
new Drink("filter", "all about filter ",
R.drawable.filter),
};
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public int getImgresourcesId() {
return imgresourcesId;
}
public void setImgresourcesId(int imgresourcesId) {
this.imgresourcesId = imgresourcesId;
}}
1) Основной класс занятий
package com.hfad.starbuzz;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView,
View itemView,
int position,
long id) {
if (position==0) {
Intent intent = new Intent(MainActivity.this,DrinkCategoryActivity.class);
startActivity(intent);
}
}
};
ListView listView =findViewById(R.id.list);
listView.setOnItemClickListener(itemClickListener);
}}
основной вид деятельности
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ImageView
android:layout_width="200dp"
android:layout_height="100dp"
android:src="@drawable/startbuzz"
android:contentDescription="@string/content_description"/>
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/option"
>
</ListView>
</LinearLayout>
и 2-й вид списка Класс. в нем нет файла макета .
package com.hfad.starbuzz;
public class DrinkCategoryActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listDrinks = getListView();
ArrayAdapter<Drink> listAdapter = new ArrayAdapter<Drink>(getApplicationContext(), android.R.layout.simple_list_item_1, Drink.drinks);
listDrinks.setAdapter(listAdapter);
}
@Override
public void onListItemClick(ListView listView,
View itemView,
int position,
long id) {
Intent intent = new Intent(DrinkCategoryActivity.this, DrinkActivity.class);
intent.putExtra(DrinkActivity.EXTRA_DRINKNO, (int) id);
startActivity(intent);
}}