প্রোগ্রামক্রমে R.id এ আইডি যুক্ত করুন


91

আমি একটি EditTextঅবজেক্ট তৈরি করছি যা আমি তার পরে ইউনিট পরীক্ষায় উল্লেখ করার চেষ্টা করি try কি সবচেয়ে ভালো উপায় একটি নতুন যোগ হয় idথেকে R.idএই পরিবর্তনশীল নির্মিত বস্তুর জন্য যে আমি পরে মাধ্যমে এটি উল্লেখ করতে পারেন, তাই findViewById()ইউনিট পরীক্ষা?


উত্তর:


209

আপনি প্রথমে একটি এক্সএমএল রিসোর্স ফাইল ব্যবহার করে আর.আইডি ক্লাসে আইডি সেট করতে পারেন এবং সংকলনের সময় অ্যান্ড্রয়েড এসডিকে তাদের অনন্য মূল্য দিতে দিন।

res / মান / ids.xML

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <item name="my_edit_text_1" type="id"/>
    <item name="my_button_1" type="id"/>
    <item name="my_time_picker_1" type="id"/>

</resources>

কোডে এটি ব্যবহার করতে:

myEditTextView.setId(R.id.my_edit_text_1);

4
আমি কি অন্য নাম.এক্সএমএল কল করতে পারি?
ofir_aghai

4
দেরিতে জবাবের জন্য দুঃখিত, তবে হ্যাঁ, সমস্ত অ্যান্ড্রয়েড সংস্থান হিসাবে, আপনি যে নামেই XML নামটি লিখতে পারেন ...
লুকানো অ্যান্ড্রয়েড

2

আপনি প্রতিটি দর্শনের জন্য সেটআইডি ব্যবহার করতে পারেন এবং গুগল বিকাশকারীকে ভিত্তি করে কোনও ধনাত্মক নম্বর নির্ধারণ করতে পারেন:

এই দর্শনটির জন্য সনাক্তকারী সেট করে। সনাক্তকারীর এই ভিউয়ের শ্রেণিবিন্যাসে অনন্য হতে হবে না। সনাক্তকারী একটি ধনাত্মক সংখ্যা হওয়া উচিত। লিঙ্ক

যাতে আপনি ব্যবহার করতে পারেন

EveryView.setId(int);

0

কোটলিনে এক্সটেনশন ফাংশন হিসাবে এখানে আমার সমাধান:

/* sets a valid id that isn't in use */
fun View.findAndSetFirstValidId() {
    var i: Int
    do {
        i = Random.nextInt()
    } while (findViewById<View>(i) != null)
    id = i
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.