Java 为什么Android Studio 3.5.1中的GridLayout声明与早期版本的Android Studio不同?
所以我今天看了一个教程,其中创建者使用了Android Studio 3.x.x的最早版本,我发现Java 为什么Android Studio 3.5.1中的GridLayout声明与早期版本的Android Studio不同?,java,android,Java,Android,所以我今天看了一个教程,其中创建者使用了Android Studio 3.x.x的最早版本,我发现 GridLayout GridLayout=(GridLayout)findViewById(R.id.GridLayout) 不适用于我的Android Studio版本(3.5.1) 在谷歌快速搜索之后,我发现我必须写作 androidx.gridlayout.widget.gridlayout gridlayout=findviewbyd(R.id.gridlayout) 相反 有人能解释为
GridLayout GridLayout=(GridLayout)findViewById(R.id.GridLayout)代码>
不适用于我的Android Studio版本(3.5.1)
在谷歌快速搜索之后,我发现我必须写作
androidx.gridlayout.widget.gridlayout gridlayout=findviewbyd(R.id.gridlayout)代码>
相反
有人能解释为什么新版本的代码会变得更复杂,为什么旧代码不能工作吗?另外,为什么其他视图的声明代码仍然相同
(例如,Button playAgainButton=(Button)findViewById(R.id.playAgainButton);
)
这种不一致性从何而来?这是因为他们使用的是Androidx而不是Appcompat库。为了迁移到AndroidX,您必须将Gradle中的依赖项更改为:
implementation 'androidx.appcompat:appcompat:1.0.0'
因此,您可以将GridLayout声明为:
androidx.gridlayout.widget.GridLayout gridLayout = findViewById(R.id.gridLayout);
由于AndroidX正在使用而不是示例中的appcompat支持库,有关详细信息:如果您为AndroidX.gridlayout.widget.gridlayout
添加导入语句,旧版本应与以前一样工作。好的,谢谢大家:)