2016-04-05 3 views
0

私は奇妙な問題があります。私はタブを開いたときだから、新しいフラグメントを開きますAndroidの部分が間違っている

public class MyPagerAdapter extends FragmentPagerAdapter { 

    private final String[] TITLES = {"Laatste Nieuws", "Uitrukken", "Voertuigen", "Contact", "Top Grossing"}; 

    public MyPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return TITLES[position]; 
    } 

    @Override 
    public int getCount() { 
     return TITLES.length; 
    } 

    @Override 
    public Fragment getItem(int position) { 

     Fragment fragment = null; 

     switch (position) { 
      case 0: 
       fragment = NaviContentFragment.newInstance(position); 
       break; 
      case 1: 
       fragment = NaviContentFragmentTwo.newInstance(position); 
       break; 
      case 2: 
       fragment = NaviContentFragment.newInstance(position); 
       break; 
      case 3: 
       fragment = NaviContentFragment.newInstance(position); 
       break; 
      case 4: 
       fragment = NaviContentFragment.newInstance(position); 
       break; 
      default: 
       break; 
     } 

     return fragment; 
    } 
} 

:主な活動で

私はこのコードを使用します。そして、「Uitrukken」というラベルのタブ1を開くと、他の部分とは別の部分が開きます。このフラグメント:

public class NaviContentFragmentTwo extends Fragment { 

private static final String ARG_POSITION = "position"; 

public static NaviContentFragment newInstance(int position) { 

    NaviContentFragment fragment = new NaviContentFragment(); 
    Bundle b = new Bundle(); 
    b.putInt(ARG_POSITION, position); 
    fragment.setArguments(b); 

    return fragment; 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View rootView = rootView = inflater.inflate(R.layout.navi_content_two, container, false); 

    TextView textViewNaviConTwo = (TextView) rootView.findViewById(R.id.textViewNaviConTwo); 

    textViewNaviConTwo.setText("HALLLOOOTJES :)"); 

    return rootView; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
} 
} 

テキスト "HALLLOOOTJES :)"。そしてその断片の中でのみ。しかし、その逆のことが起こります。このテキストは、タブ番号1を除くすべてのタブに表示されます。

私は確かに何かが欠けています。

スクリーンショット:あなたのNaviContentFragmentTwoクラスで

​​

答えて

1

、あなたのnewInstance方法からNaviContentFragmentを戻ってきています。

私の推測では、NaviContentFragmentTwoインスタンスを返す必要があります。

だから...

public class NaviContentFragmentTwo extends Fragment { 

    private static final String ARG_POSITION = "position"; 
    public static NaviContentFragmentTwo newInstance(int position) { 
     NaviContentFragmentTwo fragment = new NaviContentFragmentTwo(); 
     Bundle b = new Bundle(); 
     b.putInt(ARG_POSITION, position); 
     fragment.setArguments(b); 

     return fragment; 
    } 
+0

ありがとうございます。それは自分の愚かな間違いだった..... –

+0

@ S.Kortekaas心配はありません。私たちは皆それをやる。喜んでその並べ替え – Doomsknight

0

のようなものでなければなりません。このコードは、考えられる原因が考えられます。

public static NaviContentFragment newInstance(int position) { 

NaviContentFragment fragment = new NaviContentFragment(); 
Bundle b = new Bundle(); 
b.putInt(ARG_POSITION, position); 
fragment.setArguments(b); 

return fragment; 
} 

はNaviContentFragmentTwoにNaviContentFragmentを交換してみてください。

+0

ありがとう。それは自分のばかげたミスだった..... –

+0

ナーそれは馬鹿じゃなかった。我々はすべての間違いを犯します。素敵な一日を! – fmpsagara

関連する問題