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 はどうですか? - インテントでデータを渡す方法を教えてください。