“您的内容必须有一个ListView,其id属性为’android.R.id.list’”从ListActivity更改为视图时

我想编写一个应用程序,其中包括:使用sdcard中的图片文件填充列表视图,b:从列表中选择选项时显示图像.

但是,它与上述例外有关.我看不出为什么……?请帮忙!

主要活动:

public class ProjektJimmuActivity extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        navigateto("/sdcard/");
    }

    public void navigateto(String dir){
        setlistadapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,getlistofFiles(dir)));
        getListView().setTextFilterEnabled(true);
    }

    public String[] getlistofFiles(String dir){
        File file = new File(dir);
        String[] files = file.list(new Filter());
        return files;
    }

    @Override
    protected void onListItemClick(ListView l,View v,int position,long id) {
        super.onListItemClick(l,v,position,id);
          Object item = l.getItemAtPosition(position);
          Toast.makeText(this,"Selection: "+ item.toString(),Toast.LENGTH_SHORT).show();
          setContentView(new PictureView(this,item.toString()));
    }

    private class Filter implements FilenameFilter{
        public boolean accept(File dir,String filename) {
            return (( filename.endsWith("jpg") || filename.endsWith("png") || filename.endsWith("gif") ) && !filename.startsWith("._") );
        } 
    }

}

图片视图:

public class PictureView extends View{

    private Bitmap bitmap;
    int width,height;
    private Canvas canvas;

    public PictureView(Context context,String pictureFile) {
        super(context);
        setFocusable(true);
        bitmap = BitmapFactory.decodeFile("/sdcard/"+pictureFile);
        height = bitmap.getHeight();
        width = bitmap.getWidth();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawColor(0xFFCCCCCC);
        canvas.drawBitmap(bitmap,null,null);
    }
}

解决方法

因为您正在扩展ListActivity,所以您的布局xml文件中必须有一个ListView,其id为@android:id / list.扩展ListActivity意味着此活动主要是一个列表,但可能旁边有一些组件.因此,当您假设某个活动最初是一个列表时,您应该在该活动的布局xml文件中指定一个列表,即主列表.那个列表,应该有id,@ android:id / list.所以,只需将活动的ListView的id字段设置为@android:id / list.

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...