0

私は調査して学ぼうとしましたが、不明であり、助けていただければ幸いです。私はいくつかの異なる戦略で遊んできましたが、これは本当に基本的なものですが、これを理解することはできません.

文字列からタブ名とコンテンツ テキストを返す FragmentPagerAdapter があります。これらのビューまたはフラグメント (私は非常に新しいので、用語がよくわかりません) はスワイプ可能で、これは素晴らしいことです! (私は多数のチュートリアルと例に従いました。)

ここで、ListView を追加して、ユーザーがスワイプしたときに表示される 30 ほどの固定コンテンツ テキストをスクロールしたいと考えています。

これまでのところ、関連するコードは次のとおりです。

public MyFragmentPagerAdapter(FragmentManager fm) {
    super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
    Log.v(TAG, "getPageTitle");

    String tabTitle = null;
    switch(position) {
        case 0:
            tabTitle = "FAQs";
            break;
        case 1:
            tabTitle = "Content";
            break;  return tabTitle;
}

/** This method will be invoked when a page is requested to create */
@Override
public Fragment getItem(int arg0) {

    MyFragment myFragment = new MyFragment();
    Bundle data = new Bundle();
    data.putInt("current_page", arg0+1);
    myFragment.setArguments(data);
    return myFragment;
}


/** Returns the number of pages */
@Override
public int getCount() {     
    return PAGE_COUNT;
}

}

そしてViewPager:

public class Content extends FragmentActivity {

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

    /** Getting a reference to the ViewPager defined the layout file */        
    ViewPager pager = (ViewPager) findViewById(R.id.pager);

    /** Getting fragment manager */
    FragmentManager fm = getSupportFragmentManager();

    /** Instantiating FragmentPagerAdapter */
    MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);

    /** Setting the pagerAdapter to the pager object */
    pager.setAdapter(pagerAdapter);


}

}

public class MyFragment extends Fragment{

int mCurrentPage;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /** Getting the arguments to the Bundle object */
    Bundle data = getArguments();

    /** Getting integer data of the key current_page from the bundle */
    mCurrentPage = data.getInt("current_page", 0);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
    View v = inflater.inflate(R.layout.myfragment_layout, container,false);
    TextView tv = (TextView ) v.findViewById(R.id.tv);
    tv.setMovementMethod(new ScrollingMovementMethod());
    switch(mCurrentPage){
    case 0:
       tv.setText("  ");
    break;
    case 1:
        tv.setText(R.string.faqs);
    break;
    case 2:

        }
        return tv;

}

私がやりたいことは、コンテンツ フラグメントで返されるアイテムへのショートカットである ListView を作成することです。ListView は tabTitles を表示し、それらがクリックされると、ユーザーはスワイプ可能なコンテンツ ページに移動する必要があります。

ListView.java には何を入れますか?

public class ListView   {

}

あなたが提供できる助けを前もって感謝します。

4

1 に答える 1

0

あなたの質問から、同時にListView画面に表示するViewPagerか、別のページに表示するかが明確ではありません。ここに私が見るオプションがあります:

  1. ListView画面全体を使用し、アイテムを表示します->アイテムをクリックしますListView->新しい画面に移動し、ViewPager選択したアイテムに設定します
  2. ViewPager画面の上半分、ListView下半分を占める -> 項目をクリック->を選択した項目にListView設定ViewPager

あなたの質問に関しては、 custom を作成するListView必要がなかったのと同じように、 custom を作成する必要はありませんViewPager。データ(あなたの場合はコンテンツのページ)をそれらにバインドするアダプターでListViews(のように)動作します。ViewPagers

コンテンツのすべてのページの配列を作成し (ContentPageオブジェクトを作成するなど)、アダプターを介してその配列ListViewViewPagerバインドすることをお勧めします。これには、他のものと一緒にContentPage変更する必要があります。MyFragmentPagerAdapter

ただし、これらの概念に慣れていないため、最初に を使用してサンプル アプリを実行しListView、独自のアダプターを作成する方法または組み込みのアダプターを使用する方法を学習することをお勧めします。これらの例は、これらのことをカバーするのに役立ちます:

http://www.vogella.com/articles/AndroidListView/article.html

于 2013-01-30T17:57:35.003 に答える