不同屏幕的布局中的不同视图

时间:2018-12-20 16:04:21

标签: android android-layout

我有一款专为平板电脑设计的应用,现在我想为手机设计布局,但是我的手机布局具有不同的视图,并且在某些点上具有不同的功能,因此我面临这样的问题:layout-sw600dp/layout_a.xml(for tablet)有2个按钮,而{ {1}}现在在代码中只有一个,我设置了两个侦听器,并且应用程序由于空指针异常而崩溃,因为布局中缺少第二个按钮。有什么建议可以为这些屏幕实现不同的功能吗?

3 个答案:

答案 0 :(得分:1)

设置一个布尔标志(例如isUsingTabletLayout),并在加载平板电脑布局时将视图的绑定和该布尔检查内的侦听器的设置包装起来。如果为假,则代码将跳过手机中不存在的视图

答案 1 :(得分:0)

第一步:。了解哪种布局已加载,您可以使用以下提及的方式进行

链接:How can I detect which layout is selected by Android in my application?

第二步:

通过知道加载了哪种布局,可以启用按钮代码。

如果(layout == tablayout){       加载按钮1和按钮2。 }其他{   仅加载按钮1。 }

希望,这将起作用。

谢谢。

答案 2 :(得分:-1)

使用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());