为旧版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

  • 链接地址: http://www.djcxy.com/p/79051.html

    上一篇: Adding fragments to older Android apps

    下一篇: Using context in a fragment