Android示例HelloGallery中R.styleable unresolved的解决办法

15 November 2009

     今天尝试编译Android SDK中APIDemos中的程序,调试到HelloGallery的时候,在下面这段代码中:

public ImageAdapter(Context c) {
        mContext = c;
        TypedArray a = obtainStyledAttributes(android.R.styleable.Theme);
        mGalleryItemBackground = a.getResourceId(
                android.R.styleable.Theme_galleryItemBackground, 0);
        a.recycle();
    }
 

    编译出错,提示说android.R.styleable unresolved,在网上查了下,说R.styleable在SDK1.5中已经不再支持,所以会出现这个错误。解决方法如下:

1.在res/values目录下新建attrs.xml,在其中添加如下内容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<declare-styleable name="Gallery">
        <attr name="android:galleryItemBackground">
        </attr>
    </declare-styleable>
</resources>

2.修改HelloGallery.java,将出错的那段代码:

public ImageAdapter(Context c) {
        mContext = c;
        TypedArray a = obtainStyledAttributes(android.R.styleable.Theme);
        mGalleryItemBackground = a.getResourceId(
                android.R.styleable.Theme_galleryItemBackground, 0);
        a.recycle();
    }

修改为:

public ImageAdapter(Context c) {
        	mContext = c;
            TypedArray a = obtainStyledAttributes(R.styleable.Gallery);
            mGalleryItemBackground = a.getResourceId(
                    R.styleable.Gallery_android_galleryItemBackground, 0);
            a.recycle();
        }

3.重新运行就可以了



blog comments powered by Disqus