спасибо, сейчас я использую вот так, но есть много атрибутов, которые можно использовать, включая пользовательские и системные, мне интересно, как использовать набор атрибутов.

ользовательский вид имеет динамический пользовательский атрибут, например, атрибут backgroundimage, назначаемый через текущую неделю. Я не хочу использовать construtor CalendarView (Context context, AttributeSet attrs) для передачи нескольких атрибутов, и я пытаюсь создать экземпляр набора атрибутов с помощью Xml.asAttributeSet, но он не может работать. может кто-нибудь сказать мне, как это сделать.

Примечание: мой пользовательский вид имеет динамический атрибут, поэтому я не хочу создавать экземпляр пользовательского вида с помощью 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); 
    }
}

вот деятельность:

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 = factory.newPullParser();
    parser.setInput(new StringReader(attributes));
    parser.next();
    AttributeSet attrs = Xml.asAttributeSet(parser);
    return new CalendarView(this,attrs);
}
}

Ответы на вопрос(2)

Ваш ответ на вопрос