2017-02-27 65 views
0

我想顯示圖像存儲在一個arraylist到一個imageview.I使用picasso庫來存儲links.When我按下按鈕,我希望圖片更改爲接下來image.I正在使用的循環,但我只得到了最後element.Here是代碼:Android Studio顯示元素的Arraylist上ImageView

ImageView image1; 

Button bNext, 
ArrayList<String>ll=new ArrayList<>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_fwtografies); 
    image1=(ImageView)findViewById(R.id.image1); 
    bNext=(Button)findViewById(R.id.bNext); 
    ll.add("http://i.imgur.com/QoUeA2I.jpg"); 
    ll.add("http://i.imgur.com/21szRz9.jpg"); 
    ll.add("https://upload.wikimedia.org/wikipedia/en/e/ec/Clip_Poster.jpg"); 

    bBack.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent fwtografiesActivityIntent = new Intent(Fwtografies.this,MainActivity.class); 
      Fwtografies.this.startActivity(fwtografiesActivityIntent); 
     } 
    }); 
    bNext.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      for(int i=0;i<ll.size();i++){ 
       sp(ll.get(i),image1); 
      } 
     } 
    }); 
    bPrevius.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      viewFlipper.showPrevious(); 
     } 
    }); 

    sp("http://i.imgur.com/gijIKJO.jpg",image1); 
    //sp("http://i.imgur.com/QoUeA2I.jpg",image2); 
    //sp("http://i.imgur.com/21szRz9.jpg",image3); 
} 

public void sp(String a,ImageView b){ 
    Picasso 
      .with(getApplicationContext()) 
      .load(a) 
      .into(b); 
}} 

回答

0

我的錯誤是,我用於循環,我應該使用如果說明。 此代碼的工作我的情況:

int i=0; bNext.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      //viewFlipper.showNext(); 
      if(i<ll.size()){ 
       sp(ll.get(i),image1); 
       i++; 
      }` 
1

每當你點擊按鈕「bnext編輯」你通過你的整個的循環,因此只您的列表中的最後一個元素會顯示出來。嘗試:

int i = 0;  
bNext.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
       if(i<ll.size()){ 
       sp(ll.get(i),image1); 
       i++; 
       } 
     } 
    }); 
+0

這1做的工作,但我不明白爲什麼執行部隊環路1 – Kostasfra

+0

循環得到1 1的所有元素得到所有的元素,而不是1,但它發生得太快,你看不到它。 –

+0

我發現我的錯誤。我不應該使用,因爲我無法阻止它到每次click.I必須使用,如果爲了管理它 – Kostasfra