2016-11-11 28 views
0

在我的項目中,我想從數據庫加載我的圖片到查看尋呼機。 我的應用程序是這樣的:首先我有一個列表視圖顯示一些標題,當你點擊每個項目時,它會去第二個活動來顯示我的圖片(我只有 兩張圖片),但我可以只顯示第一張圖片查看傳呼機。我的查看尋呼機只顯示我的第一個圖像

這裏是我的代碼:

public class main_matn2 extends Activity { 
    private ImageView share; 
    private ImageView test; 

    //   , img; 
    private TextView matn; 
    // ImageButton page; 
    private database db; 
    private String sea; 
    private String name; 
    private int Page1; 
    private int Page2 = 1; 

    private SharedPreferences sp; 
    TextView Lesson_Name; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
     setContentView(R.layout.main_matn2); 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.matn_title); 
     Lesson_Name = (TextView) findViewById(R.id.lesson_name); 

     db = new database(this); 

     test = (ImageView) findViewById(R.id.more); 
     share = (ImageView) findViewById(R.id.main_matn_share); 
     matn = (TextView) findViewById(R.id.main_matn_matn); 

     Bundle ex = getIntent().getExtras(); 

     sea = ex.getString("sea"); 
     name = ex.getString("name"); 
     Page1 = Integer.parseInt(ex.getString("page")); 
     Lesson_Name.setText(name); 
     Typeface type = Typeface.createFromAsset(getAssets(), "font/font_bold.ttf"); 
     Lesson_Name.setTypeface(type); 

     load(sea, name, Page2); 
    } 

    private void load(String sea, String Name, int page3) { 
     ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 
     ImagePagerAdapter adapter = new ImagePagerAdapter(page3, Name); 
     viewPager.setAdapter(adapter); 
     db.open(); 
    } 


    @Override 
    public void onBackPressed() { 
     sp = getApplicationContext().getSharedPreferences("user", 0); 
     Editor ed = sp.edit(); 
     ed.putString("name", name); 
     ed.putString("sea", sea); 
     ed.putInt("page", Page1); 
     ed.commit(); 

     finish(); 
    } 

    @Override 
    protected void onPause() { 
     sp = getApplicationContext().getSharedPreferences("user", 0); 
     Editor ed = sp.edit(); 
     ed.putString("name", name); 
     ed.putString("sea", sea); 
     ed.putInt("page", Page1); 
     ed.commit(); 

     super.onPause(); 
    } 

    public class ImagePagerAdapter extends PagerAdapter { 
     int img_count; 
     String Name; 

     public ImagePagerAdapter(int count, String Name) { 
      img_count = count; 
      this.Name = Name; 
     } 

     @Override 
     public int getCount() { 
      return img_count; //mImages.length; 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object object) { 
      return view == ((ImageView) object); 
     } 

     @Override 
     public Object instantiateItem(ViewGroup container, int position) { 
      Context context = main_matn2.this; 

      ImageView imageView = new ImageView(context); 

      int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium); 

      imageView.setPadding(padding, padding, padding, padding); 

      imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 

      String p = db.getpic("content", sea, Name, img_count + ""); 
      if (p != null) { 

       int ImageResource = getResources().getIdentifier(p, "drawable", getPackageName()); 
       imageView.setImageResource(ImageResource); 
      } 

      ((ViewPager) container).addView(imageView, 0); 
      return imageView; 
     } 

     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      ((ViewPager) container).removeView((ImageView) object); 
     } 
    } 
} 

回答

0

你應該根據項目返回一個int,您只能看到第一頁,因爲img_count總是== 1。要顯示號碼。

private int Page2 = 1; 

load(sea, name, Page2); // Page2 is == 1 

private void load(String sea, String Name, int page3) { 
    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 
    ImagePagerAdapter adapter = new ImagePagerAdapter(page3, Name); // page3 is == 1 
    viewPager.setAdapter(adapter); 
    db.open(); 
} 

public ImagePagerAdapter(int count, String Name) { 
    img_count = count; // count is == 1 
    this.Name = Name; 
} 

@Override 
public int getCount() { 
    return img_count; // img_count is always == 1 
} 
+0

是ü權說,怎麼改以顯示第二圖像 – nsr

+0

你需要保持一個'List'或'Array'爲要在ViewPager顯示所有下流。然後,在'ImagePagerAdapter'' getCount()'方法中返回'List'或'Array'長度。如果> 1,ViewPager將嘗試呈現多個頁面。如果拋出一些異常,檢查你的數據模型,如果你的'instantiateItem'工作正常 – lubilis

+0

我不知道該怎麼做 – nsr

相關問題