小编gac*_*nel的帖子

android:如何使用attributeset构造函数实例化我的自定义视图

我的自定义视图具有动态自定义属性,例如backgroundimage属性,通过当前周分配.我不想使用construtor CalendarView(Context context,AttributeSet attrs)来传递几个属性,我尝试使用Xml.asAttributeSet实例化attributeset,但它无法工作.任何人都可以告诉我该怎么做.

注意:我的自定义视图具有动态属性,因此我不想通过xml布局实例化自定义视图.我的解决方案不正确?

这是自定义视图:

public class CalendarView extends View {
    int backgroundImage;
    public CalendarView(Context context, AttributeSet attrs) {
        super(context, attrs);
        backgroundImage = attrs.getAttributeResourceValue("http://www.mynamespace.com", "backgroundimage", 0); 
    }
}
Run Code Online (Sandbox Code Playgroud)

这是活动:

public class TestActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(createTestView(0));
    }


public CalendarView createTestView(int currentWeek) throws XmlPullParserException, IOException {
    String attributes = "<attribute xmlns:android=\"http://schemas.android.com/apk/res/android\" " +
        "xmlns:test=\"http://www.mynamespace.com\" " +
        "android:layout_width=\"fill_parent\" android:layout_height=\"30\" " +
        "test:backgroundimage=\"@drawable/"+ currentWeek +"_bg" + "\"/>";

    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();          
    factory.setNamespaceAware(true);
    XmlPullParser parser = …
Run Code Online (Sandbox Code Playgroud)

android attributes dynamic custom-view

17
推荐指数
1
解决办法
6239
查看次数

标签 统计

android ×1

attributes ×1

custom-view ×1

dynamic ×1