1

TabHost のタブを子アクティビティから非表示にする必要があります。私は試しgetParent()てみましたが、うまくいきませんでした

また試しました:

TabHost th = (TabHost) ((TabsActivity)getBaseContext()).findViewById(android.R.id.tabhost);
        th.setVisibility(View.INVISIBLE);

しかし、それはnullpointerをスローします

4

2 に答える 2

1

現在からViews他の人が所有しているものに直接アクセスしないでください。その間に他の人がリサイクルされた可能性があるためです(他の人がその間に破壊された可能性があるため)。ActivitiesActivityActivity

Activity標準的な方法で他の人と通信する必要があります。たとえば、子Activityは結果を親に返すActivityことができ、それを解釈することができます(値をに入れることができますIntent)。別の解決策は静的変数を使用することですが、これはあまり良くなく、十分に注意しないとリスクがあります。

アクティビティ間の通信の詳細については、これこれを参照してください。

于 2012-11-01T20:02:31.843 に答える
0

現在フォアグラウンドにないアクティビティのビュー階層を直接操作することはできません。これは、一時停止および停止されている可能性が高いためです。この場合、UIはすでに破棄されており、に戻るまで再構築されません。フォアグラウンド。これを解決するには、アクティビティライフサイクルで何が行われるかを検討する必要があります。迅速で汚い解決策は、タブをホストしているアクティビティに、他のアクティビティで設定できるパブリック静的変数があることです。フォアグラウンドでの実行を再開すると、その変数をチェックして、必要に応じてビューを表示または非表示にすることができます。

于 2012-11-01T19:54:04.047 に答える