1

サーバルのアクティビティを 1 つのスワイプ ビューにまとめようとしていました。

このチュートリアルを試しました:AndroidでViewPagerとFragmentPagerAdapterを使用して水平ビュースワイプを実装する _

Intent を使用して (チュートリアルのように) textView を表示する代わりに、アクティビティをセクションに表示するにはどうすればよいですか? (または他の方法)。ありがとう!

4

1 に答える 1

0

ステップ 8. と 9. で、MyFragmentPagerAdapter の getItem() メソッドで、別の MyFragment 1.2.3 など (アクティビティから変換されたもの) を返す必要があります。

/** This method will be invoked when a page is requested to create */
@Override
public Fragment getItem(int arg0) {

    //MyFragment myFragment = new MyFragment();
    //Bundle data = new Bundle();
    //data.putInt("current_page", arg0+1);
    //myFragment.setArguments(data);
    //return myFragment;

//a switch returning different types Fragments
switch(position) {
    case 0:
        //Previous Activity 1, "converted to a Fragment":)
        return (mMyFragment1 = new MyFragment1());
    case 1:
        //Previous Activity 2, "converted to a Fragment":)
        return (mMyFragment2 = new MyFragment2());
    }
}

注: そのチュートリアルのコードをより簡単に実装する方法があります。最新の SDK ツールとプラットフォーム ツールが Android SDK Manager からインストールされていることを確認してください。試したチュートリアルのステップ 4. で、「MainActivity の詳細を入力してください」ナビゲーション タイプを選択します。

コメント付きのフラグメントの例

public class MyFragment extends Fragment {
//Empty Constructor
public MyFragment () {
}   
//Return a new instance with FragmentArguments
public static MyFragment newInstance(Bundle args) {
MyFragment fragment = new MyFragment();
fragment.setArguments(args);
return fragment;
}

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

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Fragments Inflate the content view here, 
//Activities use: setContentView(R.layout.activity_main);
return inflater.inflate(R.layout.main_activity, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

 //Fragments initialize views here (or you could do it in the onCreateView() method), 
 //Activities do it in the OnCreate() method
TextView textview = (TextView) view.findViewById(R.id.textView);
textview.setText(
         "Implement all your old Activity methods here, " +
         "but remember to use getActivity() instead of THIS. !!!" +
         "A Fragment is a child of the parent Activity" +
         "--One Activity to rule them all--"     
         );


////let the argument decide what you want to do. here it is the position in the FragmentPagerAdapter
//   final int position;
//   if (getArguments() != null) {
//          position = getArguments().getInt(MyConfig.ADAPTER_POSITION_KEY);
//   } 
    }//END onViewCreated()

//      //Let the Activity implement a callback interface to communicate back. 
//      public interface Callbacks {
//          public void onCallback(int adId);
//      }
//      private static Callbacks sDummyCallbacks = new Callbacks() {
//          @Override
//          public void onCallback(int adId) {
//          }
//      };
//      private Callbacks mCallbacks = sDummyCallbacks;
//      @Override
//      public void onAttach(Activity activity) {
//          super.onAttach(activity);
//          if (!(activity instanceof Callbacks)) {
//              throw new ClassCastException(
//                      "Activity must implement fragment's callbacks.");
//          }
//          mCallbacks = (Callbacks) activity;
//      }
    //
//      @Override
//      public void onDetach() {
//          super.onDetach();
//          mCallbacks = sDummyCallbacks;
//      }    

}
于 2013-01-19T14:59:29.643 に答える