2011-12-09 26 views
15

tôi muốn xác định tên chuỗi về ý định của tôi trong tập tin strings.xml, và sau đó liên kết chuỗi để một bộ lọc ý định, như vậy:Bạn có thể xác định bộ lọc ý định Android bằng tài nguyên chuỗi không?

<intent-filter > 
    <action android:name="@string/app_intent" > 
    </action> 

    <category android:name="android.intent.category.DEFAULT" > 
    </category> 
</intent-filter> 

Khi tôi đã cố gắng tuy nhiên điều này, tôi nhận được lỗi khác nhau về hệ thống không thể tìm thấy hoạt động nào để xử lý ý định của tôi. Tôi đã cố gắng giữ giá trị (ví dụ, tên ý định) tập trung thay vì mã hóa cứng trong tệp kê khai cũng như trong mã. Vì nó, ít nhất điều này cho phép tôi tập trung nó ra khỏi mã ứng dụng, nhưng tôi vẫn còn mã hóa nó trong tệp kê khai.

Điều này thực sự không thể làm hoặc có cách nào đó để làm cho nó hoạt động?

+3

Câu hỏi thú vị. Điều gì sẽ xảy ra nếu bạn xóa "" chuỗi từ '@ string/app_intent'? Tôi mong đợi một lỗi xây dựng nhưng nó có thể là giá trị một thử. – Squonk

+0

Câu hỏi thú vị. –

+0

Hết sức tò mò, bạn sẽ * mong đợi điều này để làm gì? Tài nguyên có thể thay đổi theo cấu hình thiết bị - mọi thứ từ hướng ngang và hướng dọc sang kích thước màn hình sang ngôn ngữ hiện tại. Bạn sẽ không muốn hành động ý định thay đổi với các tham số này. – adamp

Trả lời

6

Không phải vấn đề với bộ lọc ý định, vấn đề là với android:name. Thuộc tính android:name không lấy tài nguyên chuỗi cho tên hoạt động. ví dụ <activity android:name="@string/app" android:label="@string/app_name"> không hợp lệ trong Android.

+0

Đặc biệt ** thuộc tính 'android: name', hoặc là giới hạn đối với các nút hoạt động? Vì cái kia, 'android: label' ** sẽ ** lấy ID tài nguyên như vậy, ít nhất là trên nút' application' của tệp kê khai. – eidylon

+0

Vâng, tôi không chắc chắn chính xác nơi giới hạn nằm, vì một số thuộc tính trong tệp kê khai DO thực tế hỗ trợ phương thức này. Nhưng rõ ràng cái này, vì lý do gì, không. – eidylon

Các vấn đề liên quan