首页 > 解决方案 > findViewById 似乎没有返回正确的视图类型?

问题描述

由于我们不再需要强制转换,我希望findViewById返回正确的类型,但它似乎没有这样做。我显然在这里犯了一个非常简单的错误,你能指出来吗?

我有一个TextView的 ID(因为我是动态创建的)并且想要更改该项目的文本大小,这个片段可以正常工作:

        TextView tmpView = findViewById(chain.getIngredientNameId());
        tmpView.setTextSize(8);

但是这个没有:

        findViewById(chain.getIngredientNameId()).setTextSize(8);

所以我假设我必须这样做,TextView但我的尝试似乎都没有奏效(使用()或<>),我错过了什么明显的事情?

标签: androidcastingfindviewbyid

解决方案


如果不保存到变量,则应将其转换。

TextView tmpView = findViewById(chain.getIngredientNameId());          //TextVeiw
((TextView) findViewById(chain.getIngredientNameId())).setTextSize(8); // TextVeiw
findViewById(chain.getIngredientNameId());                             // View

推荐阅读