Java 自定义适配器不适用于Parse.com中的listview
我正在尝试使用Parse.com上的数据库创建一个android应用程序。我正在使用自定义适配器创建listview。我没有发现代码有任何错误,但是ListView没有显示。日志中也没有任何内容。只是listview没有显示Java 自定义适配器不适用于Parse.com中的listview,java,android,listview,parse-platform,custom-adapter,Java,Android,Listview,Parse Platform,Custom Adapter,我正在尝试使用Parse.com上的数据库创建一个android应用程序。我正在使用自定义适配器创建listview。我没有发现代码有任何错误,但是ListView没有显示。日志中也没有任何内容。只是listview没有显示 lv = (ListView)findViewById(R.id.listView); mProgress = (ProgressBar)findViewById(R.id.check_progress); mProgress.setVisibili
lv = (ListView)findViewById(R.id.listView);
mProgress = (ProgressBar)findViewById(R.id.check_progress);
mProgress.setVisibility(View.VISIBLE);
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Sellers");
query.orderByAscending("Name");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> parseObjects, ParseException e) {
if (e == null) {
studentsList = new ArrayList<Sellers>();
for (ParseObject ob : parseObjects) {
s = new Sellers();
s.setName(ob.getString("Name").toString());
s.setAddress1(ob.getString("Address1").toString());
s.setAddress2(ob.getString("Address2").toString());
s.setShopName(ob.getString("ShopName").toString());
s.setEmail(ob.getString("Email").toString());
s.setPhone(ob.getString("Phone").toString());
s.setZipcode(ob.getString("Zipcode").toString());
studentsList.add(s);
}
adapter = new ListviewAdapter(CheckStatus.this, studentsList);
lv.setAdapter(adapter);
mProgress.setVisibility(View.GONE);
} else {
mProgress.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
lv=(ListView)findViewById(R.id.ListView);
mProgress=(ProgressBar)findviewbyd(R.id.check\u progress);
mProgress.setVisibility(View.VISIBLE);
ParseQuery=新的ParseQuery(“卖方”);
query.orderByAscending(“名称”);
findInBackground(新的FindCallback(){
@凌驾
public void done(列出parseObjects,parsee异常){
如果(e==null){
studentsList=newarraylist();
for(ParseObject ob:parseObjects){
s=新卖家();
s、 setName(ob.getString(“Name”).toString());
s、 setAddress1(ob.getString(“Address1”).toString());
s、 setAddress2(ob.getString(“Address2”).toString());
s、 setShopName(ob.getString(“ShopName”).toString());
s、 setEmail(ob.getString(“Email”).toString());
s、 setPhone(ob.getString(“Phone”).toString());
s、 setZipcode(ob.getString(“Zipcode”).toString());
学生名单。添加(s);
}
adapter=新的ListviewAdapter(CheckStatus.this,studentsList);
低压设置适配器(适配器);
mProgress.setVisibility(View.GONE);
}否则{
mProgress.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
这是我调用listview的活动
public class ListviewAdapter extends BaseAdapter{
private final static String TAG = ListviewAdapter.class.getSimpleName();
private Context activity;
private LayoutInflater inflater = null;
private List<Sellers> sellers;
int layout;
public ListviewAdapter(Context activity, List<Sellers> sellers) {
this.activity = activity;
this.sellers = sellers;
inflater = LayoutInflater.from(activity);
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public class ViewHolder {
TextView name ;
TextView shop ;
TextView address1 ;
TextView address2;
TextView phone;
TextView email;
RelativeLayout rl;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
View v =view;
ViewHolder holder = new ViewHolder();
if (view == null) {
LayoutInflater li = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.list_item_layout,null);
holder.name = (TextView)v.findViewById(R.id.seller_name);
holder.shop = (TextView)v.findViewById(R.id.shop_name);
holder.address1 = (TextView)v.findViewById(R.id.address1);
holder.address2 = (TextView)v.findViewById(R.id.address2);
holder.phone = (TextView)v.findViewById(R.id.phone);
holder.email = (TextView)v.findViewById(R.id.emailID);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
Sellers s = sellers.get(position);
// String a = s.Name;
// Log.d(TAG, a);
holder.name.setText(s.getName());
holder.shop.setText(s.getShopName());
holder.address1.setText(s.getAddress1());
holder.address2.setText(s.getAddress2());
holder.phone.setText(s.getPhone());
holder.email.setText(s.getEmail());
Log.d("CustomAdapter.class", "CustomAdapter");
// imageView.setImageDrawable(s.getPic());
return v;
}
}
公共类ListviewAdapter扩展了BaseAdapter{
私有最终静态字符串标记=ListviewAdapter.class.getSimpleName();
私人语境活动;
专用充气机=空;
私人名单卖家;
int布局;
公共ListviewAdapter(上下文活动,列表卖家){
这个。活动=活动;
这个。卖方=卖方;
充气机=从(活动)开始的充气机;
}
@凌驾
public int getCount(){
返回0;
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
公共类视图持有者{
文本视图名称;
TextView商店;
文本视图地址1;
文本视图地址2;
文本视图电话;
TextView电子邮件;
相对寿命;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
视图v=视图;
ViewHolder=新的ViewHolder();
如果(视图==null){
LayoutInflater li=(LayoutInflater)activity.getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=li.充气(R.布局.列表项布局,空);
holder.name=(TextView)v.findViewById(R.id.seller\u name);
holder.shop=(TextView)v.findViewById(R.id.shop\u name);
holder.address1=(TextView)v.findViewById(R.id.address1);
holder.address2=(TextView)v.findViewById(R.id.address2);
holder.phone=(TextView)v.findViewById(R.id.phone);
holder.email=(TextView)v.findViewById(R.id.emailID);
v、 setTag(支架);
}否则{
holder=(ViewHolder)v.getTag();
}
卖方s=卖方。获取(位置);
//字符串a=s.Name;
//日志d(标签a);
holder.name.setText(s.getName());
holder.shop.setText(s.getShopName());
holder.address1.setText(s.getAddress1());
holder.address2.setText(s.getAddress2());
holder.phone.setText(s.getPhone());
holder.email.setText(s.getEmail());
Log.d(“CustomAdapter.class”、“CustomAdapter”);
//setImageDrawable(s.getPic());
返回v;
}
}
这是自定义适配器。logcat中没有显示空指针异常。我无法确定为什么listview没有被填充 试试这个
@Override
public int getCount() {
return sellers.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position:
}
您必须在getCount()上实现代码,返回将创建的listview项的数目