2

質問が少し漠然としている場合は事前にお詫びしたいと思いますが、何が起こっているのかを説明するコードの特定の部分を提供するのは難しいです.

アクティビティ (StreamActivity) の 1 つで使用する BaseExpandableListAdapter を拡張して、ExpandableListView を設定しました。このアクティビティは、ActivityGroup の一部です。次に、グループの一部ではない別のアクティビティ (StreamUserActivity) に対して非常によく似たアダプターが必要であることがわかりました。カスタム アダプターをさらに拡張し、異なる特定のメソッドのみをオーバーライドすることにしました。行構造の背後にあるロジックは、両方のアダプターで同じです。

ただし、スタンドアロン アクティビティ用の 2 番目のアダプターを使用すると、notifyDataSetChanged() を呼び出すと、リストが更新される前に画面が黒くなります。場合によっては、一時的なまばたきにすぎない場合もあれば、そのままの場合もあります。次に、リストをスクロールすると再び表示されますが、ExpandableListView の上の要素は再表示されません。それでも、この要素のアクティブな要素に触れると、計画どおりに別のアクティビティに移動するように反応します。

StreamUserActivity は、次の方法で StreamActivity 内から開始されます。

Intent streamUserProfiletIntent = new Intent(this, StreamUserProfileActivity.class);
streamUserProfiletIntent.putExtra(StreamUserProfileActivity.USER_JID,
OpenfireRosterProvider.getInstance(getApplicationContext()).getCurrentUser().getJabberId());
startActivity(streamUserProfiletIntent);

これにより、画面が黒くなります。ただし、次のように開始すると:

Intent streamUserProfiletIntent = new Intent(this, StreamUserProfileActivity.class);
streamUserProfiletIntent.putExtra(StreamUserProfileActivity.USER_JID,
OpenfireRosterProvider.getInstance(getApplicationContext()).getCurrentUser().getJabberId());
startChildActivity("StreamUserProfiletIntent", streamUserProfiletIntent);

...点滅はありませんが、新しいアクティビティはActivityGroupの一部であり、必要なものではありません。

この問題の原因についてのアイデアはありますか? おそらく共有できるように、コードのどの部分がこれに関与している可能性がありますか。

4

0 に答える 0