Java Android ListView没有';我运行应用程序时不会显示任何内容
我正在尝试显示产品列表,但当我运行应用程序时,它会在设备上显示任何内容。我无法找出问题所在。我想在MainActivity.java上填充数据 MainActivity.javaJava Android ListView没有';我运行应用程序时不会显示任何内容,java,android,Java,Android,我正在尝试显示产品列表,但当我运行应用程序时,它会在设备上显示任何内容。我无法找出问题所在。我想在MainActivity.java上填充数据 MainActivity.java public class MainActivity extends AppCompatActivity { // ProductsListAdapter productsListAdapter; @Override protected void onCreate(Bundle savedIns
public class MainActivity extends AppCompatActivity {
// ProductsListAdapter productsListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView productlistview = (ListView) findViewById(R.id.productlistview);
// productsListAdapter = new ProductsListAdapter()
// productlistview.setAdapter(productsListAdapter);
}
private List<Product> createListofProducts(){
ArrayList<Product> productArrayList = new ArrayList<Product>();
productArrayList.add(new Product("Kimbo", 50.0, 0, " "));
productArrayList.add(new Product("Sugar", 60.0, 0, " "));
productArrayList.add(new Product("Oil", 70.0, 0, " "));
productArrayList.add(new Product("Bread", 40.0, 0, " "));
productArrayList.add(new Product("water", 30.0, 0, " "));
return productArrayList;
}
}
public类MainActivity扩展了AppCompatActivity{
//ProductsListAdapter ProductsListAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView产品ListView=(ListView)findViewById(R.id.productlistview);
//productsListAdapter=新产品sListAdapter()
//setAdapter(productsListAdapter);
}
私有列表createListofProducts(){
ArrayList productArrayList=新的ArrayList();
productArrayList.add(新产品(“Kimbo”,50.0,0,”));
productArrayList.add(新产品(“糖”,60.0,0,”));
productArrayList.add(新产品(“油”,70.0,0,”));
productArrayList.add(新产品(“面包”,40.0,0,”));
productArrayList.add(新产品(“水”,30.0,0,”));
返回productArrayList;
}
}
ProductListAdapater.java
public class ProductsListAdapter extends BaseAdapter {
//reference of activity
Context context;
List<Product> productList;
public ProductsListAdapter(Context context, List<Product> productList) {
this.context = context;
this.productList = productList;
}
//tells you how many items ARE in a list
@Override
public int getCount() {
return productList.size();
}
//tells the item that has been clicked at a particular position
@Override
public Object getItem(int position) {
return productList.get(position);
}
//tells the position of an item
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
convertView = layoutInflater.inflate(R.layout.product_list_item,null);
Product currentproduct = productList.get(position);
TextView tvProductName = (TextView) convertView.findViewById(R.id.tvproductname);
TextView tvPrice = (TextView) convertView.findViewById(R.id.tvprice);
TextView btnAddToCart = (TextView) convertView.findViewById(R.id.buttonAddToCart);
//setText only takes string
tvProductName.setText(currentproduct.name);
tvPrice.setText(String.valueOf(currentproduct.price));
return convertView;
}
}
公共类ProductsListAdapter扩展了BaseAdapter{
//活动参考
语境;
列出产品清单;
public ProductsListAdapter(上下文上下文,列表productList){
this.context=上下文;
this.productList=productList;
}
//告诉您列表中有多少项
@凌驾
public int getCount(){
返回productList.size();
}
//指示已在特定位置单击的项目
@凌驾
公共对象getItem(int位置){
返回productList.get(位置);
}
//指示项目的位置
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater LayoutInflater=LayoutInflater.from(上下文);
convertView=LayoutFlater.充气(R.layout.product\u list\u项,空);
Product currentproduct=productList.get(位置);
TextView tvProductName=(TextView)convertView.findViewById(R.id.tvProductName);
TextView tvPrice=(TextView)convertView.findViewById(R.id.tvPrice);
TextView btnAddToCart=(TextView)convertView.findViewById(R.id.buttonadtocart);
//setText只接受字符串
tvProductName.setText(currentproduct.name);
tvPrice.setText(String.valueOf(currentproduct.price));
返回视图;
}
}
像这样的怎么样
ListView productlistview = (ListView) findViewById(R.id.productlistview);
productsListAdapter = new ProductsListAdapter(this, createListofProducts())
productlistview.setAdapter(productsListAdapter);
您从未设置适配器。。。取消注释已注释的行。。。使用正确的结构不要忘记调整列表视图。@Selvin,谢谢。我不确定如何设置适配器,因为我尝试的所有操作都有错误。我不知道我必须添加(这个,createListofProducts())。谢谢@Prexx,我必须添加(这个,createListofProducts())