Tôi đã làm việc trên một Custom Control cho Android và mặc dù tôi đã cố gắng làm những gì được đề xuất here dường như có điều gì đó tôi đang làm sai.Android Custom Control namespace issue
Dưới đây là mã của tôi để xem có ai có thể nhận ra vấn đề:
MyComponent.java
public MyComponent(Context context, AttributeSet attrs)
{
super(context);
TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.MyComponent);
CharSequence myId = arr.getString(R.styleable.MyComponent_identifier);
if (myId != null)
{
this.setIdentifier(myId.toString());
}
Integer cds = arr.getInteger(R.styleable.MyComponent_cd_number, 0);
if(cds != null)
{
this.setCds(cds);
}
arr.recycle();
}
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyComponent">
<attr name="cd_number" format="integer" />
<attr name="identifier" format="string" />
</declare-styleable>
</resources>
main.xml
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bgl="http://schemas.android.com/apk/res/my.test.package.components"
android:id="@+id/table"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
<my.test.package.MyComponent
android:id="@+id/hand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="2"
bgl:cd_number="4"
bgl:identifier="plr"/>
...
</TableLayout>
Khi tôi đặt này tôi nhận được các lỗi sau đây:
lỗi: Không có định danh tài nguyên tìm thấy cho thuộc tính 'cd_number' trong gói 'my.test.package' lỗi: Không có định danh tài nguyên tìm thấy cho thuộc tính 'nhận dạng' trong gói 'my.test.package'
Nếu tôi thay đổi không gian tên của tôi để cái gì đó như:
xmlns:bgl="http://schemas.mywhatever.com/apk/res/my.test.package"
... các lỗi đi w ay và điều chạy nhưng myId là null và cds là 0 (giá trị mặc định!) trở lại trên hàm tạo MyComponent.java.
Tôi muốn nói đó là một số sai lầm rất cơ bản nhưng tôi không thể phát hiện ra nó và vì không có nhiều tài liệu về điều này, tôi quyết định hỏi tại đây.
Cảm ơn trước!
Công việc tuyệt vời nghiên cứu và cung cấp câu trả lời. sửa lỗi tự động sửa là chính xác những gì tôi cần. – AlanKley
'tự động định lại'. Bạn đẹp! – darksider474
bgl và myns là gì, làm cách nào tôi có thể đặt tên đó – Nepster