AndroidView在ImageView上显示Arraylist的元素

时间:2017-02-27 23:48:44

标签: java android arraylist

我想将存储在arraylist中的图像显示到imageview。我正在使用毕加索库存储链接。当我按下按钮时,我希望图片更改为下一个图像。我正在使用for循环,但我只得到最后一个元素。这是代码:

 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);
}}

2 个答案:

答案 0 :(得分:1)

每次点击按钮&#34; bnext&#34;你正在完成整个for循环,因此只显示列表的最后一个元素。尝试:

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

答案 1 :(得分:0)

我的错误是我用于循环,我应该使用if statment。 此代码适用于我的情况:

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++;
            }`