如何在onCreate()中使用变量的值来在不同的方法中使用

时间:2014-03-17 09:24:45

标签: java android

我在oncreate中有一个变量'position'的值,我使用getIntent()从不同的活动中得到它。现在我想用另一种方法来使用这个位置的值。

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tatslideshow);
            Intent j = getIntent();
    int position = j.getExtras().getInt("pos");
}

我希望在这个方法中使用位置

public void updateUI() {
                   int imgid[] = alltats[position];

.
.
. 
}

现在我知道我可以通过在updateUI()中放置参数来传递值,如updateUI(position)并使用它。但问题是我在我的类中也有一个子类,我调用这个方法所以我不能把参数放在updateUI()中。这是子类:

class RefreshHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
        // TODO Auto-generated method stub
        TatSlideShow.this.updateUI();
    }
    }

TatSlideShow是主要类。请告诉我实现它的方法。

2 个答案:

答案 0 :(得分:1)

您可以直接从getIntent().getExtras().getInt("pos")致电updateUI(),因为updateUI()是您的活动的非静态方法。

答案 1 :(得分:1)

我担心您必须使用参数和方法,因为您已经知道...因为方法中的变量范围在方法块本身内。 否则,一旦它们离开它们就会被销毁。

否则,您必须直接在UpdateUI方法中使用变量位置,如。

public void updateUI() 
{
               position=getIntent().getExtras().getInt("pos");
               int imgid[] = alltats[position];
}