Данные ListView отображаются в необычном формате? - PullRequest
0 голосов
/ 12 марта 2019

Я практикую этот код из 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);
    }}

1 Ответ

0 голосов
/ 13 марта 2019

Проблема решена,

Я только что добавил метод toString внутри класса, который содержит значения массива, как показано ниже: -

 public String getName() {


    return name;
}
@Override
public String toString (){
    return name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...