gpt4 book ai didi

java - 无法使用 if 语句中定义的变量

转载 作者:行者123 更新时间:2023-12-01 21:45:26 24 4
gpt4 key购买 nike

我正在尝试在 android 中做这样的事情:

// If the parent is a viewpager
if (parentIsViewPager)
{
// Retrieve the view's layout informations specific to viewpagers
ViewPager.MarginLayoutParams marginLayoutParams = (ViewPager.MarginLayoutParams) getLayoutParams();
}
// If the parent is not a viewpager (mainly a viewgroup)
else
{
// Retrieve the view's layout informations for a viewgroup
ViewGroup.MarginLayoutParams marginLayoutParams = getLayoutParams();
}

Log.i("Test","marginLayoutParams.leftMargin = " + marginLayoutParams.leftMargin);

不幸的是,IDE(Android Studio 1.5.1)告诉我它在上面的最后一行找不到layoutParams的声明...但我在if语句中声明了它!

我猜这里有一些关于范围的内容,但是由于我的项目中的以下代码非常大,我无法在每个 if 语句中重复它。

那么我怎样才能实现这个或类似的目标呢?

编辑:
正如我的猜测,这在评论中得到了证实,这是一个范围问题。好的,明白了。

感谢大家的帮助。

最佳答案

变量声明仅限于其范围。在本例中为 if-else 语句。

你可以这样做:

// Declare in correct scope and define later...
ViewGroup.LayoutParams layoutParams;

// If the parent is a viewpager
if (parentIsViewPager)
{
// Retrieve the view's layout informations specific to viewpagers
layoutParams = (ViewGroup.LayoutParams) getLayoutParams();
}
// If the parent is not a viewpager (mainly a viewgroup)
else
{
// Retrieve the view's layout informations for a viewgroup
layoutParams = (ViewGroup.LayoutParams) getLayoutParams();
}

Log.i("Test","layoutParams.width = " + layoutParams.width);

关于java - 无法使用 if 语句中定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com