Android 不同屏幕布局中的不同视图
我有为平板电脑设计的应用程序,现在我想为手机做布局,但我的手机布局有不同的视图,在某些方面有不同的功能,我面临这样的问题:Android 不同屏幕布局中的不同视图,android,android-layout,Android,Android Layout,我有为平板电脑设计的应用程序,现在我想为手机做布局,但我的手机布局有不同的视图,在某些方面有不同的功能,我面临这样的问题:layout-sw600dp/layout_a.xml(平板电脑)有2个按钮和layout-sw320dp/layou a.xml(手机)现在代码中只有一个侦听器,我设置了两个侦听器,应用程序崩溃,出现空指针异常,因为布局中缺少第二个按钮。有什么建议我如何为这些屏幕实现不同的功能吗?设置一个布尔标志(例如isUsingTabletLayout),并在加载平板电脑布局时,在布尔
layout-sw600dp/layout_a.xml(平板电脑)
有2个按钮和layout-sw320dp/layou a.xml(手机)
现在代码中只有一个侦听器,我设置了两个侦听器,应用程序崩溃,出现空指针异常,因为布局中缺少第二个按钮。有什么建议我如何为这些屏幕实现不同的功能吗?设置一个布尔标志(例如isUsingTabletLayout),并在加载平板电脑布局时,在布尔检查中包装视图绑定和侦听器设置。如果为false,代码将跳过手机中不存在的视图使用getIdentifier()
方法。如果返回非零值,则资源存在,否则不存在
String button_id="your_button_id";
//where button id is defined as android:id="@+id/your_button_id"
String resource_type= "id";
getResources().getIdentifier(button_id, resource_type, getApplicationContext().getPackageName());
第一步:。知道加载了哪个布局,您可以使用下面提到的方法来完成 链接: 第二步: 通过知道加载了哪些布局,可以为按钮启用代码 如果(布局==表格布局){ 加载按钮1和按钮2。 }否则{ 仅加载按钮1。 } 希望,这会奏效
谢谢。为什么不检查空值?例如,使用Kotlin safe operator(?),您可以检查平板电脑布局中是否存在视图,而手机布局中是否存在视图。