Middle+
Шумо чӣ гуна хато дар кодро мешуморед, ки мехоҳед фавран иваз кунед?
sobes.tech AI
Ҷавоб аз AI
findViewById-ни истифода на ҷойи View Binding ё Data Binding. findViewById намехоҳад, ки бехатарии навъи дошта бошад ва ба коди иловагӣ оварда мерасонад.
// Нусхаи истифодаи findViewById
val textView: TextView = findViewById(R.id.myTextView)
textView.text = "Hello"
Вариантҳои пешфарз:
// Нусхаи истифодаи View Binding
// Дар build.gradle фаъол карда мешавад
// buildFeatures { viewBinding true }
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.myTextView.text = "Hello"
// Нусхаи истифодаи Data Binding
// Дар build.gradle фаъол карда мешавад
// buildFeatures { dataBinding true }
// Тарҳбандӣ дар дохили теги <layout> қарор дорад
val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
binding.myTextView.text = "Hello"
Ҳамчунин, бояд ба назар гирифт:
- Набудани коркарди арзишҳои эҳтимолии
null. - Андозаи зиёди синф ё усул (қаллобӣ аз принсипи масъулияти ягона).
- Истифодаи сатрҳо ё рақамҳои "магик" ба ҷои констант.
- Такрори коди.
- Набудани тестҳо (юнит, интегратсионӣ).
- Истифодаи API-ҳои кӯҳна (масалан, версияҳои кӯҳнаи китобхонаҳои дастгирии Android).
- Коди душвор барои фаҳмидан ва нигоҳдорӣ бе шарҳҳо ё бо шарҳҳои номувофиқ.
- Идоракунии нодуруст дар давраи ҳаёти компонентҳо (масалан, шикастҳои хотира).
Ин нуқтаҳо одатан ба мушкилоти эҳтимолӣ дар боварӣ, нигоҳдорӣ ва иҷрои барнома ишора мекунанд.