我有一些看起来像这样的代码:
loading = (TextView) findViewById(R.id.loading);
public void enterButton(View v) { // This is a button
loading.setVisibility(TextView.VISIBLE); // For some reason this does not happen...
MyApp.initialize(); // ... before this is completed
Intent i = new Intent(this, AnotherActivity.class);
startActivityForResult(i, 0);
}
loading 是一个 TextView,它简单地说,“正在加载……”。MyApp.initialize() 是一个计算量很大的方法,它设置了 AnotherActivity。运行需要几秒钟,这就是为什么我希望出现“正在加载...”消息。
问题是大部分时间 loading.setVisibility(TextView.VISIBLE) 似乎没有做任何事情。我从来没有看到过文字。在极少数情况下,我会在 Activity 更改之前看到“正在加载...”短暂闪烁。有些东西告诉我,Android 正在将 loading.setVisibility(TextView.VISIBLE) 放在堆栈或其他东西上,然后直到 MyApp.initialize() 完成后才开始这样做,这显然为时已晚。我希望在 MyApp.initialize() 开始之前出现“正在加载...”。
活动更改前的动画看起来很接近,但 .setAnimationListener 不适用于 TextView。TextView 有类似的东西吗?我对此进行了尝试,但应用程序挂起:
loading.setVisibility(TextView.VISIBLE);
loading.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
MyApp.initialize();
Intent i = new Intent(MyApp.getInstance(), AnotherActivity.class);
startActivityForResult(i, 0);
return true;
}
});
有什么建议么?谢谢你。