Tay*_*har 5 android rename android-viewbinding
假设我有一个名为Activity_main.xml的布局,它有一个元素:
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
名为MainActivity.java 的活动。在其 onCreate 方法中,我使用 viewBinding 膨胀上述布局,并设置文本视图的文本:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.textView.setText("some text");
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我通过按
类似的方式重命名Activity_main.xml中 TextView 的 id ,那么 中的引用不会从 更改为Shift+F6@+id/text_view_newonCreatebinding.textView.setText("some text");binding.textViewNew.setText("some text");
这种行为是限制、错误还是我做错了什么?
这种行为是限制、错误还是我做错了什么?
我的想法是:
视图绑定机制生成额外的 Java 绑定类。所以在构建过程中神奇的事情发生了——生成了 ActivityMainBinding 类,并放置了公共字段“textView”。获得此类的实例后,您可以只编写“binding.textView”。
但是在 xml 中重命名“id”之后,自动更改此自动生成的类并不是很明智(如果您想用“textViewNew”替换“textView”,则必须执行该操作)。这就是为什么此更改不会影响代码中的任何内容
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |