0

Fragments を使用するために、いくつかの Android アプリをアップグレードしたいと考えています。基本的な状況は次のとおりです。

Activity と ListActivity があります。互換性パッケージを使用してフラグメントを使用してこれらを変換したい。以下は、アクティビティの onCreate メソッドにあるものです。(ListActivity には同様の項目があるため、変換の例としてアクティビティのみを使用しています)。

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    this.getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    setContentView(R.layout.rate);

    Item = getIntent().getExtras().getString("name");
    Category = getIntent().getExtras().getString("category");

    title = (TextView) findViewById(R.id.tvRateItem);
    ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);

    title.setText(Item);

    // Display list of reviews

    new starTotalTask().execute();
    new starRatingTask().execute();

    final EditText etTweetReview = (EditText) findViewById(R.id.etTweetReview);
    Button button = (Button) findViewById(R.id.theRatingBarButton);
    button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            // do stuff

            }
        }
    });

    Button BReviews = (Button) findViewById(R.id.bReviews);
    BReviews.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

        // do stuff 

        }
    });

}

ご覧のとおり、いくつかのボタン、いくつかの AsyncTask、他のアクティビティからデータを取得するいくつかの getIntent、XML を参照するいくつかの「ウィジェット」宣言があります。

基本的なフレームワークは、FragmentActivity (互換性 v4 パッケージから) を使用して既にセットアップされており、それが指すいくつかのフラグメントがあります。実際、ViewPager とタブが設定されています。新しい Fragment ビューに適切なレイアウトが設定されています。上記のようにデータを移動する方法がわかりません。また、onCreateView がレイアウトを設定する場所であることも理解しています。それ以外では、他のすべてはどこに行くのでしょうか? 方向性ほどコード例を探していません-可能であれば。

編集: 私のレイアウトはこれに基づいています: http://thepseudocoder.wordpress.com/2011/10/13/android-tabs-viewpager-swipe-able-tabs-ftw/

特に関心のある点: - RatingsBar と TextView (およびその他の xml 参照) はどこに行くのですか? - AsyncTask はどうですか? - インテントでデータを渡す方法を教えてください。

4

1 に答える 1

0

ほとんどすべてが同じになります。主な違いは次のとおりです。

  1. FragmentActivityの代わりに拡張する必要がありActivityます。

  2. getSupportFragmentManager()の代わりに呼び出す必要がありますgetFragmentManager()

  3. getSupportLoaderManager()の代わりに呼び出す必要がありますgetLoaderManager()

  4. ListFragmentActivity互換性ライブラリは(または何でも)をサポートしていません。FragmentActivity代わりにを使用して、コードでを設定する必要がありListViewます。

于 2012-07-08T17:34:07.830 に答える