কীভাবে একটি আলাদা সংস্থান দ্বারা রেফারেন্সড রিসোর্সের আইডি পাবেন?


9

আমি রানটাইমে রেফারেন্স করা রিসোর্সের আইডি পেতে চাই। উদাহরণস্বরূপ এটি আমার কোড:

<string name="d2c_entryroadblock_start_value" translatable="false">@string/get_started</string>

এবং আমি রানটাইমে R.string.get_startedকেবলমাত্র রেফারেন্স থাকার আইডিতে আগ্রহী R.string.d2c_entryroadblock_start_value।

এটি নীচে APK বিশ্লেষকটিতে দেখতে কেমন লাগে তাও দেখতে পারেন - আমার এটি হওয়া দরকার @ref/0x7f1302fc

APK বিশ্লেষক স্ক্রিনশট

উত্তর:


6

প্যারামিটারের জন্য Resources#getValue()পাস করে আপনি পদ্ধতিটি দিয়ে এটি পেতে পারেন । উদাহরণ স্বরূপ:falseresolveRefs

TypedValue value = new TypedValue();
getResources().getValue(R.string.alias_name, value, false);
int aliasedId = value.data;

যেমন দেখানো হয়েছে, বিকল্পযুক্ত সংস্থানটির জন্য সংখ্যাসূচক আইডি TypedValue'র dataক্ষেত্রে হবে। আপনার যদি হেক্সাডেসিমালে এটির প্রয়োজন হয় তবে আপনি এটি পাস করতে পারেন Integer.toHexString()। এবং, যদি আপনার অ্যালিজেড রিসোর্সের নাম প্রয়োজন হয় তবে এটি কেবল সহজ:

String aliasedName = getResources().getResourceEntryName(value.data);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.