Java Android ListView没有';我运行应用程序时不会显示任何内容

Java Android ListView没有';我运行应用程序时不会显示任何内容,java,android,Java,Android,我正在尝试显示产品列表,但当我运行应用程序时,它会在设备上显示任何内容。我无法找出问题所在。我想在MainActivity.java上填充数据 MainActivity.java public class MainActivity extends AppCompatActivity { // ProductsListAdapter productsListAdapter; @Override protected void onCreate(Bundle savedIns

我正在尝试显示产品列表,但当我运行应用程序时,它会在设备上显示任何内容。我无法找出问题所在。我想在MainActivity.java上填充数据

MainActivity.java

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())