2017-04-01 9 views
0

アンドロイドスタジオの「アクションバータブ」でタブ付きアクティビティテンプレートを選択しました。メインアクティビティからタブ付きアクティビティフラグメントを呼び出す方法は?

私は3つのフラグメント(One.java、Two.java、Three.java)を各タブごとに1つ作成しました。

私は2番目のフラグメントのカーソルに関連するコードを持っています。私がアプリケーションを実行すると、2番目のフラグメントのコードが実行されていません。

私の質問は、フラグメント(Two.java)が暗黙的に呼び出されるかどうか、またはインスタンスを作成して呼び出す必要があるかどうかです(もしあれば、どのように?)。私はあなたが実際に新しいフラグメントを作成していない伝えることができるものから、Two.java

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    logReader1 = new LogReader(getContext()); 
    db = logReader1.getReadableDatabase(); 
    Cursor logCursor = db.rawQuery("SELECT rowid _id,name,Time_Used,app_Image FROM logs ORDER BY Time_Used DESC", null); 
    LogCursorAdapter logAdapter = new LogCursorAdapter((MainActivity) getContext(), logCursor); 
    ListView log_Items = (ListView) container.findViewById(R.id.list_item); 
    log_Items.setAdapter((logAdapter)); 
    return log_Items; 

} 
+2

プロジェクトにオフサイトでリンクしないでください。質問自体に[mcve]を含める必要があります。 –

+0

申し訳ありません。私はこれに新しいです。私は私の質問を更新しました。できるだけ早く対応してください。 –

答えて

0

ためMainActivity.java

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

     if(getArguments().getInt(ARG_SECTION_NUMBER)==1){ 
      View rootView = inflater.inflate(R.layout.fragment_one, container, false); 

      return rootView; 
     } 
     else if (getArguments().getInt(ARG_SECTION_NUMBER) == 2) { 
      View rootView = inflater.inflate(R.layout.fragment_two, container, false); 
       return rootView; 

      } else { 
       View rootView = inflater.inflate(R.layout.fragment_three, container, false); 
       return rootView; 
      } 
    } 

コードスニペット用

コードスニペット。あなたは、フラグメント2のレイアウトとして使用する予定のレイアウトを膨らませています。

https://developer.android.com/training/implementing-navigation/lateral.htmlのようなものは正しい方向を指しているはずです。どのようにフラグメントを作成して返しますかDemoCollectionPagerAdapter.

関連する問題