0

我想升级我的几个 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 的“小部件”声明。

我已经使用 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(或其他)。您需要使用 aFragmentActivityListView在您的代码中设置。

于 2012-07-08T17:34:07.830 回答