为旧版Android应用添加片段
我想升级几个Android应用程序以使用Fragments。 这是一个基本的情况:
我有一个活动和一个ListActivity。 我想使用兼容性打包来使用片段进行转换。 以下是我在Activity中的onCreate方法中的内容。 (ListActivity有类似的项目,所以我只在转换中使用Activity作为示例)。
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
}
});
}
所以你看,我有几个按钮,一些AsyncTasks,一些getIntents从其他活动中获取数据,一些引用XML的“widget”声明。
我已经使用FragmentActivity(来自兼容性v4包)设置了基本框架,并指向了一些片段。 事实上,我有一个ViewPager和标签设置。 正确的布局已经设置好了,因为它应该是新的Fragment视图。 我只是不知道如何移动数据,如上所示。 我也明白onCreateView是你设置布局的地方。 除此之外,其他一切都去了哪里? 不像寻找方向那样寻找代码示例 - 如果可能的话。
编辑:我的布局是基于此:http://thepseudocoder.wordpress.com/2011/10/13/android-tabs-viewpager-swipe-able-tabs-ftw/
特别感兴趣的是: - RatingsBar和TextView(以及其他xml引用)在哪里去? - AsyncTask怎么样? - 你如何处理意图传递的数据?
几乎所有的东西都是一样的。 主要区别是:
您需要扩展FragmentActivity
来代替Activity
。
您需要调用getSupportFragmentManager()
而不是getFragmentManager()
。
您需要调用getSupportLoaderManager()
而不是getLoaderManager()
。
兼容性库不支持ListFragmentActivity
(或其他)。 您需要改用FragmentActivity
并在代码中设置ListView
。