0

ハイ!

ユーザープロファイル (写真、年齢など) を表示するアクティビティがあります。ユーザープロファイルの数は動的です (user_ids は私の Web サービスから取得されます)。

アクティビティは追加 (user_id) で呼び出され、Web からすべてのデータをロードします。

ここで、動的な水平ビュー ページングを作成したいと考えています (ビューの数は動的です)。例として、私はhttp://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizo​​ntal -view-paging/ を使用していますが、そこで彼はレイアウトを切り替えるだけです。

私のコード:

public class MyPagerAdapter extends PagerAdapter{

    private int cnt;

    public void setCount(int cnt)
    {
        this.cnt = cnt;
    }

    public int getCount() {
        return cnt;
    }

    public Object instantiateItem(View collection, int position) {

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


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

        View v = new View (MyPagerAdapter.this);
        ((ViewPager) collection).addView(view, 0);

        return view;
    }

    @Override
    public void destroyItem(View arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);

    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == ((View) arg1);

    }

    @Override
    public Parcelable saveState() {
        return null;
    }

}

助けてください

PS: Greendroid ライブラリも使用していますが、サンプル コード (https://github.com/cyrilmottier/GreenDroid/blob/master/GDCatalog/src/com/cyrilmottier/android/gdcatalog/PagedViewActivity.java) は理解しにくいです。

4

1 に答える 1

0

次のアダプターから始めることをお勧めします。

private class PhotoSwipeAdapter extends PagedAdapter {

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

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = getLayoutInflater().inflate(R.layout.paged_view_item, parent, false);
            }

            ((TextView) convertView).setText(Integer.toString(position));

            return convertView;
        }

    }

それはあなたが必要とするもののようなものです。そして、あなたが見るように、getViewメソッドは現在のページの特定のビューを返します。あなたはそれをあなたが好きなもので満たすことができます。上記の例では、レイアウトファイルです。コードごとにレイアウトを作成することもできますが、レイアウトファイルを使用すると簡単です。

ああ、そしてこの答えを完成させるために。(あなたが送ってくれたチュートリアルを誰も知らないので、リンクだけかもっと難しい場合でも、すべてのリソースを追加してください!すべてを追加した場合にのみ、私たちが最善を尽くすことができます)->あなたが従ったチュートリアルはGreenDroidを使用していませんライブラリ、チュートリアルではAndroid互換ライブラリを使用しています。GreenDroidにはPageAdapterの追加バージョンがあります(間違っている場合は訂正してください)。常にサンプルアプリをフォローして使用する必要があります。使用する特定のライブラリを見つけることができます。チュートリアルのすべての詳細を読むことも重要です->ページには「水平ビューページングは​​Android互換性パッケージv4、リビジョン3でのみ利用可能なAPIに基づいています。これらのAPIは、現時点では標準のAndroidSDKでは利用できません。」

于 2012-04-12T19:15:18.883 に答える