1

私にとってはもう2か月近くになります。特に、Java、Androidでコーディングしています。問題が発生し、2日以上苦労しています。

基本的に、私は文字列(url)でいっぱいのデータベースを持っています。選択した(クエリによって)UrlをUniversal Image Loaderに渡し、最終的にUILからダウンロードされたすべての画像を含むViewpagerを取得するアプリケーションを構築しようとしています。

(ViewPagerに使用するために)独自のアダプターを作成しましたが、UniversalImageLoaderを使用してそのViewPagerを作成する方法がわかりません。

これが私のコードです: MenuImages.java

public class Menu_images extends Activity {


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

 Bundle map = getIntent().getExtras();
 String rest_name=map.getString("key");
 String area=map.getString("key2");

 loadGalleryImages(rest_name, area);


 }

private void loadGalleryImages(String rest_name, String area) {
    DatabaseHandler db = new DatabaseHandler(getApplicationContext());
    List<String> images_url = db.getImagesUrl(rest_name, area);

    MyPagerAdapter adapter = new MyPagerAdapter();
    ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);

    myPager.setAdapter(adapter);
    myPager.setCurrentItem(0);

}

MyPagerAdapter.java

public class MyPagerAdapter extends PagerAdapter {

Context context;


private Integer[] Imgid = {
         R.drawable.gallery_photo_1, R.drawable.gallery_photo_3, R.drawable.gallery_photo_1
};

public MyPagerAdapter(List<String> images_url) {
    // TODO Auto-generated constructor stub
}
public int getCount() {
    return Imgid.length;
}

public Object instantiateItem(View collection, int position) {      


    ImageView img = new ImageView(collection.getContext());


    int resId = 0;
    switch (position) {
    case 0:
        resId = Imgid[0];
        break;
    case 1:
        resId = Imgid[1];
        break;
    case 2:
        resId = Imgid[2];
        break;
    }

    img.setImageResource(resId);
    ((ViewPager) collection).addView(img, 0);
    return img;
}
public void destroyItem(View arg0, int arg1, Object arg2) {
    ((ViewPager) arg0).removeView((View) arg2);
}
public boolean isViewFromObject(View arg0, Object arg1) {
    return arg0 == ((View) arg1);
}
public Parcelable saveState() {
    return null;
}

}

DataBaseHandler.java

public List<String> getImagesUrl(String rest_name, String area) {
    List<String> images_url = new ArrayList<String>();

     // Select All Query
       String selectQuery = "a query goes here";


       SQLiteDatabase db = this.getReadableDatabase();
       Cursor cursor = db.rawQuery(selectQuery, null);





    // looping through all rows and adding to list
       if (cursor.moveToFirst()) {
           do {
               images_url.add(cursor.getString(cursor.getColumnIndex("_images")));
           } while (cursor.moveToNext());
       }

       // closing connection
        cursor.close();
        db.close();

       return images_url;
}

ご覧のとおり、DataBaseHandlerからすべての文字列(URL)を含むリストを取得しています。実際には、配列Interger []をMyPagerAdapterから削除し、DataBaseHandlerから取得したリスト(URLを持つリスト)に動的に置き換える必要があります。

要約すると、Universal Image Loaderに渡したすべてのURLを使用させ、それらを使用してビューページャーを作成しようとしています。

私は永遠に感謝します、もしあなたが私にそれを手に入れることができれば、私はびっくりし始めているからです。私はこの部分に何日も費やし、何時間も探しましたが、自分に合ったものを見つけられませんでした。

事前に感謝し、長い話をしてすみません、ハリス。

4

1 に答える 1

0

これがあなたにとって完璧なです。右上隅にあるソースコードをダウンロードして、アプリケーションを実行します。あなたはソースコードを研究することができます、それはあなたが必要とするすべてを持っています。それは少し進歩です、びっくりしないでください。質問があれば投稿してください。

于 2012-11-22T03:46:17.070 に答える