2017-06-01 43 views
-2

我试图显示产品列表,但是当我运行应用程序时,它确实在设备上显示任何东西。我无法弄清楚我的问题在哪里。我想在我的MainActivity.java上填充数据。当我运行应用程序时,Android ListView不显示任何东西

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

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; 
    } 
} 
+2

你从来没有设置适配器...发表评论的行...并使用正确的构造器 – Selvin

+0

不要忘记调整列表视图。 – Jer

+0

@谢尔文,谢谢。我不知道如何设置适配器,导致我尝试的所有错误。我不知道我只需要添加(这,createListofProducts())。 – Olal

回答

1

如何类似的东西?

ListView productlistview = (ListView) findViewById(R.id.productlistview); 
productsListAdapter = new ProductsListAdapter(this, createListofProducts()) 
productlistview.setAdapter(productsListAdapter); 
+0

谢谢@Prexx,我只需要添加(this,createListofProducts()) – Olal

+0

你能接受我的答案吗?:)谢谢 – Prexx