我是Android的初学者并练习一些基本的东西。我创建了我的第一个android应用程序,并在包中的src文件夹中,我在类MainActivity的同一个包中创建了类Products
。
在MainActivity中,我使用simple_list_item_1创建ListView
。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list=(ListView)findViewById(R.id.bill);
adapter=new ArrayAdapter<Products>(this,android.R.layout.simple_list_item_1,tn);
list.setAdapter(adapter);
并制作按钮
Button drink=(Button)findViewById(R.id.coffe);
drink.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Products c=new Products("coffe","100,00");
adapter.add(c);
}
});
当我在平板电脑上运行时,应用程序正常运行,但当我按下按钮drink
而不是在列表中显示coffe 100,00
时,它会显示com.ana.helloworld.Products@410c9a40
类产品是基本的
package com.ana.helloworld;
public class Products {
private String name = "noname";
private String price="null";
public Products(){
};
public Products(String name,String price)
{
this.name=name;
this.price=price;
};
public String getPrice(){
return price;}
public void setPrice(String p){
price=p;}
public String getName(){
return name;}
public void setName(String n){
name=n;}
}
也许类产品应该在其他包中?在此先感谢!!
答案 0 :(得分:1)
你需要定义一个toString()方法,它显示你想要的东西,而不是Object提供的默认方法,它可以输出Classname @ 123f12。
答案 1 :(得分:1)
您的Product类需要一个toString方法,如下所示:
public String toString(){
StringBuilder str = new StringBuilder();
str.append(name);
str.append("\n");
str.append(price);
return str.toString(); }