次のようなコードがあります。
final int height = 0; //I want to get this height after Predraw view
view.addOnPreDrawListener(new OnPreDrawListener()
{
@Override
public boolean onPreDraw()
{
int myHeight = itemLayout.getMeasuredHeight();
height = myHeight; //this line has error
return false;
}
});
問題は、リスナーから値 (特にプリミティブ型) を取得する方法です。それは常に示しています
Cannot refer to a non-final variable height inside an inner class defined in a different method
次に、変数を final に変更しようとすると、エラーが表示されます。
The final local variable height cannot be assigned, since it is defined in an enclosing type
API が使いにくい理由がわかりません。