几天前,我在Action Bar
根据以下结果更新菜单图标时遇到问题AsyncTask
:由于 AsyncTask 结果而立即更新操作栏菜单项
现在我意识到这个问题根本与 anAsyncTask
或 an无关Action Bar
。如果我想更改 aTextView
或任何其他View
.
经过一段时间的反复试验,我意识到问题是由我在Activity
调用第二个Activity
(我想更改图标的地方)中使用的 overridePendingTransition 引起的:
首先Activity
(在 onItemClick 方法中):
@Override
public void onItemClick(View view, int position) {
...
Intent intent = new Intent(getActivity(), SecondActivity.class);
...
startActivityForResult(intent, anyValue);
getActivity().overridePendingTransition(R.anim.slide_in_right, R.anim.no_animation);
}
动画看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime"/>
</set>
这就是第二个 Activity 的 AsyncTask (onPostExecute) 的样子:
@Override
public void onPostExecute(String result) {
super.onPostExecute(result);
if (mMenu != null) {
if (result.equals("no favorite")) {
...
mMenu.findItem(R.id.action_favorite).setVisible(false);
mMenu.findItem(R.id.action_no_favorite).setVisible(true);
} else {
...
mMenu.findItem(R.id.action_favorite).setVisible(true);
mMenu.findItem(R.id.action_no_favorite).setVisible(false);
}
}
如前所述,您也可以使用一个 TextView 并根据结果设置文本,而不是在两个菜单图标之间切换 - 问题仍然存在。
你知道我怎样才能改变动画而不会在我的第二次出现这种奇怪的延迟Activity
吗?