Intereting Posts
Незарегистрированный регистрационный токен в Firebase Использовать макет местоположения без установки его в настройках Мусульмане перестраивают библиотеки проектов каждый раз Как изменить вид списка Цвет текста Как применить стиль ко всем кнопкам приложения для Android Как разрешить это предупреждение «W / Atlas: Указатель 0x0, а не в getPreloadedDrawables? » Как создать квадратную кнопку, которая настраивается на высоту элемента списка? Декомпилировать .apk в Android Как вы имитируете и тестируете Обновление приложения на Android и iphone? Java.lang.RuntimeException: Parcelable столкнулся с IOException, записывающий сериализуемый объект в Android, передающий объект ArrayList Есть ли способ позволить Android NDK-build использовать более новую версию gcc? Выбранный каталог не является допустимым домом для Android SDK Кто-нибудь использует Sencha Touch для мобильной разработки? Как разрешить ADB-устройство не авторизовано на хост-устройстве Android ADB? Подключите Android к сети WiFi Enterprise EAP (PEAP)

Как показать предупреждение / ошибку, если используемый идентификатор ресурса принадлежит другому макету действий

Есть ли способ показать некоторые предупреждения / ошибки, когда идентификатор ресурса Android не относится к макету, раздутому в Activity?

Ниже приведен простой пример, но в более сложных макетах гораздо сложнее выявить такие проблемы, которые могут быть обнаружены только во время выполнения. Я хотел бы иметь возможность поймать их во время компиляции.

Инициализация MainActivity

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // how to prevent erroneous usage of R.id.text2 at compile time TextView t = (TextView) findViewById(R.id.text2); } 

activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </RelativeLayout> 

activity_second.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SecondActivity"> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </RelativeLayout> 

Я не знаю о каких-либо проверках Lint или подобных, которые могут делать то, что вам нужно. Я бы сделал запрос функции, потому что он выглядит как полезная функция.
Пока я буду использовать префиксы в идентификаторах. Например:

 findViewById(act_main_text1); findViewById(act_main_text2); root.findViewById(fragment_preferences_username); 

И так далее. Это не приведет к возникновению ошибки / предупреждения во время стадии сборки, но это облегчит вам жизнь, так как вы всегда будете знать, к какому действию / фрагменту / относится этот конкретный идентификатор.