开发者

Switching Views inside a TimerTask - Android

I have the following code that responds to a butt开发者_StackOverflow中文版on click, changes the view and then after 5 seconds switches the view back:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
    Button test = (Button)findViewById(R.id.browseLocation);
    test.setOnClickListener(testListener);
}
private TimerTask revert = new TimerTask(){
    @Override
    public void run() {
        setContentView(R.layout.menu);
    }
};
private OnClickListener testListener = new OnClickListener() {
    public void onClick(View v) {
        setContentView(R.layout.test);
        Timer tim = new Timer();
        tim.schedule(revert, 5000);
    }
};

However this code does not work. The run method of the timetask is hit but setContentView fails. I assume it has something to do with scope inside the timetask. How can I achieve the desired result?


Try yourActivityName.this.setContentView(). Do you know if revert is being called at all (i.e. using Logging)?


Found on another post that setContentView cannot be called from a non-UI thread.

Can achieve the desired affect using runOnUiThread, but not recommended.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜