2017-02-27 103 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