我正在尝试实现一个自定义的SimpleCursorAdapter,但问题是,如果我运行我的应用程序,listView没有显示任何内容。这是为什么?这是我的代码:
package com.messageHider;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class myAdapter extends SimpleCursorAdapter {
private Context appContext;
private int layout;
private Cursor mycursor;
public myAdapter(Context context, int layout, Cursor c, String[] from,int[] to) {
super(context, layout, c, from, to);
this.appContext=context;
this.layout=layout;
this.mycursor=c;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(layout, null, true);
ImageView imageViewVidIcon=(ImageView)convertView.findViewById(R.id.imageViewVidThumb);
imageViewVidIcon.setImageResource(R.drawable.videothumb);
ImageView imageViewPlayBtn=(ImageView)convertView.findViewById(R.id.imageViewPlaybtn);
imageViewPlayBtn.setImageResource(R.drawable.playbtn);
TextView textViewTitle=(TextView)convertView.findViewById(R.id.textViewVideoTitle);
String title=mycursor.getString(mycursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME));
textViewTitle.setText(title);
imageViewPlayBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(appContext, "It works", Toast.LENGTH_LONG).show();
}
});
return convertView;
}
}
答案 0 :(得分:1)
我会说你的
public int getCount() {
return 0;
}
使ListView认为没有什么可以查看。 尝试
return 1;
用于启动或调试会话。
答案 1 :(得分:0)
@Override
public int getCount() {
return 0;
}
此函数返回列表中的元素数。 所以它返回时不能为0,它应该是元素列表的大小。
答案 2 :(得分:0)
您必须在自定义bindView()
中手动拨打newView()
和getView()
。因为在原始源代码中,bindView()
和newView()
在getView()
内调用,所以当您覆盖它时也必须这样做。