0

文字列内の情報へのアクセスに関する非常に初心者の質問。私はfragmentpagerとPagerTabStripを使用するアプリをまとめました。

タブにタイトルが表示されるはずですが、私のものは何も表示しません...私はまったくの初心者であるためです。このコミュニティにとても感謝しています。

コンテンツを呼び出すレイアウトファイルから(そして、一度修正すると、タイトル--id @ pager_headerでしょ?):

<android.support.v4.view.PagerTabStrip
    android:id="@+id/pager_header"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:paddingBottom="4dp"
    android:paddingTop="4dp"
    android:textColor="#ffffff" />

コンテンツのスワイプ可能なページを取得するコード:

パブリッククラスの詩は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.content_1);
    break;
    case 2:
        tv.setText(R.string.content_2);
        break;
    case 3:
        tv.setText(R.string.content_3);
        break;
                    }
        return tv;

}

}

これからpager_headerを取得するにはどうすればよいですか?

関連する文字列の例は次のとおりです。

<string name="content_1">Welcome to this app!</string>

私はテキストコンテンツのバックグラウンドから来ているので、文字列をよりよく理解する必要があると考えています。

stings.xmlファイルに、アプリがページビューに関連付けられたコンテンツを参照できるようにするインジケーターを含めて、タブに表示できるようにするにはどうすればよいですか?コンテンツに「このアプリへようこそ」と表示されているのに、タブのタイトルに「ホーム」と表示されるようにするにはどうすればよいですか?

各エントリ(ページ)は、データベース内の行のようなものであり、1つの参照ポイントがタイトル、1つがコンテンツ、1つがリンクまたはその他のコンテンツであるかのように思います。それぞれに独自のIDがありますよね?

初心者の方にもご説明いただき、誠にありがとうございます。

4

1 に答える 1

0

getPageTitle(int position)で実装する必要がありますMyFragmentPagerAdapter。このStringメソッドから返される は、 のタイトルを設定するために使用されPagerTabStripます。

@Override
public CharSequence getPageTitle(int position) {
    Log.v(TAG, "getPageTitle");

    String tabTitle;
    switch(position) {
        case 0:
            tabTitle = "Tab #0";
            break;
        case 1:
            tabTitle = "Home";
            break;
        case 2:
            tabTitle = "Tab #2";
            break;
        case 3:
            tabTitle = "Tab #3";
            break;
        default:
            tabTitle = "Default Tab Title";
            break;
    }
    return tabTitle;
}

に追加する をBundle呼び出しsetArguments(Bundle args)てを使用して渡す title および content 引数を作成することで、これをより動的にすることができます。次に、渡された content引数に基づいてコンテンツを設定できます。次に、への参照を取得し、 からタイトルを直接取得できます。MyFragmentsViewPagerMyFragmentonCreateView()StringMyFragmentPagerAdapterFragmentpositionMyFragment

于 2013-01-25T22:16:14.033 に答える