1

仕事で ActionBar.TabListener を使用しています。4 つのタブがあり、各タブには独自のフラグメントがあります。OnTabSelected 関数でタブを変更したい場合、テーブル行を動的に追加するフラグメントでテーブルレイアウトを見つけようとします。しかし、それはnullの例外を返します。ここで多くの記事を検索した後、その理由は、古いフラグメント レイアウトで id を見つけたからだと思いました。現在のフラグメントの準備が整うまで待機する必要があります。(onFinishinflate() のように?) 誰かがそれを理解する方法を教えてもらえますか?? どうもありがとう!

これが私のコードです

public void onTabSelected(ActionBar.Tab tab,FragmentTransaction fragmentTransaction{
       mViewPager.setCurrentItem(tab.getPosition()); 
       if (tab.getPosition() == 0){
              TableLayout table = (TableLayout) this.findViewById(R.id.TableLayout1);
       }
}
4

1 に答える 1

2

使用する代わりに

this.findViewById

使用する

getActivity().findViewById

または、コンテキストを最初に格納する変数を作成します。

Context context = this;

そして使用する

context.findViewById
于 2013-06-08T08:28:35.853 に答える