0

これは私の最初の質問なので、できるだけ正確に答えようとします。Fragment Activity、Fragment List、View Pager を使用してアプリケーションを作成しようとしています。アクティビティがデフォルトでロードされると、フラグメント リストが左側に表示され、ビュー ページャーが右側 (詳細ビュー) に表示されます。フラグメント リスト ボタンの 1 つをクリックすると、詳細ビ​​ュー (右側) に Web ビューをロードしたいと考えています。

Fragment List を使用して Fragment Activity を実装しました。これにView Pagerを追加して、アプリケーションのロード時に表示されるようにする方法..

    public class MainActivity extends FragmentActivity implements McDonaldsListener {

  @Override
 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

McDonaldsFragment countries
  =(McDonaldsFragment)getSupportFragmentManager()
                        .findFragmentById(R.id.countries);

countries.setCountryListener(this);

Fragment f=getSupportFragmentManager().findFragmentById(R.id.details);


  countries.enablePersistentSelection();

  }

 @Override
  public void onCountrySelected(McDonalds c) {
String url=getString(c.url);


  ((DetailsFragment)getSupportFragmentManager()
                        .findFragmentById(R.id.details))
                        .loadUrl(url);                            


  }
 }

必要に応じて投稿する他のサポートクラスがあります。

誰かが私にいくつかの解決策を提案してくれることを願っています。

編集:これは私が実装しようとしたものですが、仕事はありません....インスタンス化の例外が発生します:(

public class ViewPagerExample extends android.support.v4.app.FragmentActivity        implements McDonaldsListener {
private MyAdapter mAdapter;
private ViewPager mPager;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mAdapter = new MyAdapter(getSupportFragmentManager());

    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);


    McDonaldsFragment mc
    =(McDonaldsFragment)getSupportFragmentManager()
                          .findFragmentById(R.id.countries);

  mc.setCountryListener(this);

  Fragment f=getSupportFragmentManager().findFragmentById(R.id.details);

    mc.enablePersistentSelection();
}

public void onCountrySelected(McDonalds c) {
  String url=getString(c.url);


    ((DetailsFragment)getSupportFragmentManager()
                          .findFragmentById(R.id.details))
                          .loadUrl(url);                            


}

public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return new DetailFragment();
        case 1:
            return new ImageFragment(R.drawable.ic_launcher);
        case 2:
            return new ImageFragment(R.drawable.ic_launcher);

        default:
            return null;
        }
    }
  }
 }
4

1 に答える 1

0

このピーター クテルナ ビュー ページャーを試してみましょう http://blog.peterkuterna.net/2011/09/viewpager-meets-swipey-tabs.html

于 2012-12-31T12:20:28.370 に答える