我在我的应用程序中动态创建线性布局。在某个阶段我需要检查某些布局是否已经存在并相应地编写逻辑
1)if layout present-remove all child views and replace with new childs
2)if layout not present-create layout with it's child elements
然而,我没有上述两个conditins的问题,但我使用了如下所示的方法
linearLayout.setId(1);
创建动态布局时 现在我想检查id 1 的布局是否存在或不是我尝试的内容如下:
int layoutId = getApplicationContext().getResources().getIdentifier("1", "layout", getApplicationContext().getPackageName());
Toast.makeText(getApplicationContext(), String.valueOf(layoutId), Toast.LENGTH_LONG).show();
if (layoutId == 0 ) {
// this layout doesn't exist
Toast.makeText(getApplicationContext(), "layout not present", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(), "layout present", Toast.LENGTH_LONG).show();
}
如果我将getIdentifier()方法中的任何字符串作为第一个参数,那么它可以正常工作。
但问题在于
如果我在getIdentifier()方法中给出双引号中的任何数字作为第一个参数,它总是返回非零数字。所以如果布局存在或不存在,我总是得到块执行。