0

私は Android の初心者開発者です。

layoutinflater一般的に、特にこのコードで何が使用されているのか、またそれが何に使用されているのかを説明できますか?

私はこのコードを持っています:

 private class MyPagerAdapter extends PagerAdapter {

    public int getCount() {
        return 5;
    }

    public Object instantiateItem(View collection, int position) {

    *** LayoutInflater inflater = (LayoutInflater) collection.getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;
        switch (position) {
        case 0:
            resId = R.layout.farleft;
            break;
        case 1:
            resId = R.layout.left;
            break;
        case 2:
            resId = R.layout.middle;
            break;
        case 3:
            resId = R.layout.right;
            break;
        case 4:
            resId = R.layout.farright;
            break;
        }

        View view = inflater.inflate(resId, null);

        ((ViewPager) collection).addView(view, 0);

        return view;
    }
4

2 に答える 2

4

LayoutInflater サービスは、保存されている XML レイアウトのコピーを、アプリケーション プロセスのメモリ空間で実際にインスタンス化されたビューのコレクションに変換します。

  • エディタで作成したレイアウトは XML として保存されます。
  • XML はリソースとしてアプリに埋め込まれます。
  • レイアウトインフレータはリソース ファイルを読み取ります。
  • 次に、オブジェクトとして指定したビューを作成します。
  • コードからビュー オブジェクトを操作できるようになりました。

setContentView(int)を呼び出すと、Activity クラスが自動的にこのプロセスを実行します。

于 2013-02-05T22:45:21.457 に答える
0

は、XML ファイルを、その XML で指定されたすべての子を含むオブジェクトにLayoutInflater「変換」します。「フラットな」XML ファイルは.ViewViewView

LayoutInflater |も参照してください。Android デベロッパー

于 2013-02-05T22:46:05.850 に答える