Android 未填充Listvew,也未调用getView函数
我不熟悉安卓编程。我正在尝试购物车教程,尝试使用Android 未填充Listvew,也未调用getView函数,android,android-listview,Android,Android Listview,我不熟悉安卓编程。我正在尝试购物车教程,尝试使用productAdapter填充目录视图的listview。但是列表没有被填充,而且getview函数也没有被调用。我正在附上我的文件。请告诉我,我错在哪里 ProductAdapter.java package com.example.helloshoppingcart; import java.util.List; import android.view.LayoutInflater; import android.view.View;
productAdapter
填充目录视图的listview
。但是列表没有被填充,而且getview
函数也没有被调用。我正在附上我的文件。请告诉我,我错在哪里
ProductAdapter.java
package com.example.helloshoppingcart;
import java.util.List;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
public class ProductAdapter extends BaseAdapter {
private class viewItem{
ImageView productImageView;
TextView productTitle;
CheckBox productCheckbox;
};
private List<Product> mproductList;
private LayoutInflater minflater;
private Boolean mShowCheckbox;
ProductAdapter(List<Product> productList, LayoutInflater inflater, Boolean showCheckbox)
{
this.mproductList = productList;
this.minflater = inflater;
this.mShowCheckbox = showCheckbox;
}
@Override
public View getView(int pos, View convertView, ViewGroup parent ){
final viewItem item;
if (convertView == null){
convertView = minflater.inflate(R.layout.item, null);
item = new viewItem();
item.productImageView = (ImageView) convertView.findViewById(R.id.ImageViewItem);
item.productTitle= (TextView) convertView.findViewById(R.id.TextViewItem);
//item.productCheckbox = (CheckBox) convertView.findViewById(R.id.CheckBoxSelected);
convertView.setTag(item);
}else{
item = (viewItem) convertView.getTag();
}
Product prod = mproductList.get(pos);
item.productImageView.setImageDrawable(prod.productImage);
//item.productCheckbox.setChecked(prod.selected);
item.productTitle.setText(prod.title);
return convertView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
}
CatalogActivity.java
package com.example.helloshoppingcart;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;
public class CatalogActivity extends Activity {
private List<Product> mproductList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalog);
//get the catalog and display all the records
mproductList = shoppingCartHelper.getCatalog(getResources());
ListView catalogListView = (ListView) findViewById(R.id.ListViewCatalog);
ProductAdapter catalogListAdapter = new ProductAdapter(mproductList, getLayoutInflater(), false);
catalogListView.setAdapter(catalogListAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.activity_catalog, menu);
return true;
}
}
activity_catalog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#ffffff">
<!--<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textColor="#000000"
android:textSize="24dip" android:layout_margin="5dip" android:text="Product Catalog"></TextView>-->
<ListView android:layout_height="wrap_content"
android:layout_weight="1" android:id="@+id/ListViewCatalog"
android:layout_width="fill_parent" android:background="#ffffff"
android:clickable="true" android:cacheColorHint="#ffffff">
</ListView>
<!-- <Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="5dip"
android:layout_gravity="right" android:id="@+id/ButtonViewCart"
android:text="View Shopping Cart"></Button>-->
</LinearLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView android:id="@+id/ImageViewItem"
android:layout_margin="5dip"
android:layout_height="wrap_content"
android:layout_width="100dip">
</ImageView>
<TextView android:id="@+id/TextViewItem"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dip"
android:textSize="26dip"
android:text="Phone Names"
android:textColor="#000000"
android:minLines="2"
android:maxWidth="150dip">
</TextView>
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
</TextView>
<!-- <CheckBox android:layout_height="wrap_content"
android:layout_margin="5dip" android:id="@+id/CheckBoxSelected"
android:focusable="false" android:clickable="false"
android:layout_gravity="center" android:layout_width="wrap_content">
</CheckBox>-->
</LinearLayout>
ProductAdapter.java
package com.example.helloshoppingcart;
导入java.util.List;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.CheckBox;
导入android.widget.ImageView;
导入android.widget.TextView;
公共类ProductAdapter扩展了BaseAdapter{
私有类视图项{
ImageView产品ImageView;
文本视图产品标题;
复选框产品复选框;
};
私人名单;
私人停车场;
私有布尔mShowCheckbox;
ProductAdapter(列出productList、LayoutFlater充气机、布尔显示复选框)
{
this.mpProductList=产品列表;
this.minflater=充气机;
this.mShowCheckbox=showCheckbox;
}
@凌驾
公共视图getView(int pos、视图转换视图、视图组父视图){
最终视图项;
if(convertView==null){
convertView=minflater.充气(R.layout.item,空);
item=新的viewItem();
item.productImageView=(ImageView)convertView.findViewById(R.id.ImageViewItem);
item.productTitle=(TextView)convertView.findViewById(R.id.TextViewItem);
//item.productCheckbox=(复选框)convertView.findViewById(R.id.CheckBoxSelected);
convertView.setTag(项目);
}否则{
item=(viewItem)convertView.getTag();
}
Product prod=MPProductList.get(pos);
item.productImageView.setImageDrawable(prod.productImage);
//item.productCheckbox.setChecked(prod.selected);
item.productTitle.setText(产品标题);
返回视图;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回0;
}
}
CatalogActivity.java
package com.example.helloshoppingcart;
导入java.util.List;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.widget.ListView;
公共类编目活动扩展了活动{
私人名单;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_目录);
//获取目录并显示所有记录
MPProductList=shoppingCartHelper.getCatalog(getResources());
ListView目录ListView=(ListView)findViewById(R.id.ListViewCatalog);
ProductAdapter catalogListAdapter=新ProductAdapter(MPProductList,GetLayoutFlater(),false);
setAdapter(catalogListAdapter);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
//getMenuInflater().充气(R.menu.activity\u目录,菜单);
返回true;
}
}
activity_catalog.xml
item.xml
只是快速浏览了一下,但是getCount()应该返回项目数
在适配器中,因此mpProductList.size()只快速浏览了一下,但是getCount()应该返回项目数
在适配器中,以及在ProductAdapter中的mpProductList.size()中,getCount()方法返回适配器拥有的与此ListView关联的项数。因此,它应该返回listview将显示的最大项数,即用作数据源的列表的大小:mpProductList.size()
未调用getView()方法,因为此函数在代码中返回0。在ProductAdapter中,getCount()方法返回与此ListView关联的适配器所拥有的项数。因此,它应该返回listview将显示的最大项数,即用作数据源的列表的大小:mpProductList.size() 未调用getView()方法,因为此函数在代码中返回0