【问题标题】:ListView data displayed in unusal format?ListView 数据以不寻常​​的格式显示?
【发布时间】:2019-08-03 03:15:22
【问题描述】:

我正在从 head First Android Development 练习这段代码。在这里,如果我从第一个列表视图中单击 Drink,我也会在第二个列表视图中显示数据,例如 com.hfad.starbuzz.Drink@22c6250

谁能指出为什么它以列表方式呈现数据?

1st list view link

2nd list view looks like this

第一个用于存储数组值和构造函数的纯 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>

和第二个列表视图类。它没有任何布局文件

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);
    }}

【问题讨论】:

  • 您是否只是想实现列出饮料名称?如果是这种情况,请尝试覆盖 toString 方法
  • 效果很好。非常感谢
  • 如果您为自己的问题找到了一个好的答案,那么请将其作为答案,而不是通过在问题中给出答案来混淆人们。此外,不要将标题编辑为“已解决”或任何内容。问题仍然存在。可以给出答案。

标签: java android listview object arraylist


【解决方案1】:

问题解决了,

我刚刚在包含数组值的类中添加了 toString 方法,如下所示:-

 public String getName() {


    return name;
}
@Override
public String toString (){
    return name;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2018-06-04
    • 2023-03-30
    相关资源
    最近更新 更多